Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 ListBox с картинками  [new]
Супер_Пав
Member

Откуда: Москва
Сообщений: 347
Доброго денечка.
Есть у меня 2 ListBox, в первом текстовые итемы, во втором коллекция картинок, которая связана с элементами первого листбокса:
<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid Margin="10">
            <!-- Drop Shadow -->
            <Border CornerRadius="4" Background="#44000000">
                <Border.RenderTransform>
                    <TranslateTransform X="5" Y="5" />
                </Border.RenderTransform>
                <Border.Effect>
                    <BlurEffect Radius="8" />
                </Border.Effect>
            </Border>
            <!-- Image Template -->
            <Border Padding="4" Background="White" BorderBrush="#22000000" BorderThickness="1">
                <StackPanel Orientation="Vertical">
                    <Image Source="{Binding Url}"/>                   
                </StackPanel>
            </Border>
        </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>

Проблемка в сл.: все картинки лежат где-то в сети, не локально, из-за чего, при переходе между итемами первого ListBox-а происходит небольшое зависание, я так понимаю, во втором ListBox-е отрисовываются картинки, которые загружаются по сети. Есть способ, как избавиться от зависания? Пока на ум приходит только локальный буфер, куда загружать картинки из сети и на них кидать ссылку. В этом случае, смогу красиво все оформить. Но данный подход смущает, хочет что-то другое.
28 ноя 18, 14:38    [21747428]     Ответить | Цитировать Сообщить модератору
 Re: ListBox с картинками  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3305
Супер_Пав
Доброго денечка.
Есть у меня 2 ListBox, в первом текстовые итемы, во втором коллекция картинок, которая связана с элементами первого листбокса:
<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid Margin="10">
            <!-- Drop Shadow -->
            <Border CornerRadius="4" Background="#44000000">
                <Border.RenderTransform>
                    <TranslateTransform X="5" Y="5" />
                </Border.RenderTransform>
                <Border.Effect>
                    <BlurEffect Radius="8" />
                </Border.Effect>
            </Border>
            <!-- Image Template -->
            <Border Padding="4" Background="White" BorderBrush="#22000000" BorderThickness="1">
                <StackPanel Orientation="Vertical">
                    <Image Source="{Binding Url}"/>                   
                </StackPanel>
            </Border>
        </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>

Проблемка в сл.: все картинки лежат где-то в сети, не локально, из-за чего, при переходе между итемами первого ListBox-а происходит небольшое зависание, я так понимаю, во втором ListBox-е отрисовываются картинки, которые загружаются по сети. Есть способ, как избавиться от зависания? Пока на ум приходит только локальный буфер, куда загружать картинки из сети и на них кидать ссылку. В этом случае, смогу красиво все оформить. Но данный подход смущает, хочет что-то другое.

a) для ввода\вывода использовать async
б) картинки загружать после того, как загрузите все элементы, то есть сперва грузить всю мелку информацию, картинки вторичны
28 ноя 18, 14:43    [21747434]     Ответить | Цитировать Сообщить модератору
 Re: ListBox с картинками  [new]
Супер_Пав
Member

Откуда: Москва
Сообщений: 347
Roman Mejtes
Супер_Пав
Доброго денечка.
Есть у меня 2 ListBox, в первом текстовые итемы, во втором коллекция картинок, которая связана с элементами первого листбокса:
<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid Margin="10">
            <!-- Drop Shadow -->
            <Border CornerRadius="4" Background="#44000000">
                <Border.RenderTransform>
                    <TranslateTransform X="5" Y="5" />
                </Border.RenderTransform>
                <Border.Effect>
                    <BlurEffect Radius="8" />
                </Border.Effect>
            </Border>
            <!-- Image Template -->
            <Border Padding="4" Background="White" BorderBrush="#22000000" BorderThickness="1">
                <StackPanel Orientation="Vertical">
                    <Image Source="{Binding Url}"/>                   
                </StackPanel>
            </Border>
        </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>

Проблемка в сл.: все картинки лежат где-то в сети, не локально, из-за чего, при переходе между итемами первого ListBox-а происходит небольшое зависание, я так понимаю, во втором ListBox-е отрисовываются картинки, которые загружаются по сети. Есть способ, как избавиться от зависания? Пока на ум приходит только локальный буфер, куда загружать картинки из сети и на них кидать ссылку. В этом случае, смогу красиво все оформить. Но данный подход смущает, хочет что-то другое.

a) для ввода\вывода использовать async
б) картинки загружать после того, как загрузите все элементы, то есть сперва грузить всю мелку информацию, картинки вторичны

Так я не гружу картинки напрямую. Из БД получаю путь к ним, его и прописываю в Url. Или Вы имеете ввиду, что сам путь прописывать позже?
28 ноя 18, 14:52    [21747445]     Ответить | Цитировать Сообщить модератору
 Re: ListBox с картинками  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3305
Супер_Пав,

тогда сделайте картинку ленивой, я думал вы её прямо из бд грузите
28 ноя 18, 15:15    [21747498]     Ответить | Цитировать Сообщить модератору
 Re: ListBox с картинками  [new]
Супер_Пав
Member

Откуда: Москва
Сообщений: 347
Roman Mejtes
Супер_Пав,

тогда сделайте картинку ленивой, я думал вы её прямо из бд грузите

что такое ленивая картинка?
28 ноя 18, 15:29    [21747524]     Ответить | Цитировать Сообщить модератору
 Re: ListBox с картинками  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3305
Lazy<T>
28 ноя 18, 15:30    [21747526]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить