Установите фоновое изображение для элемента Listbox

Я могу установить изображение в Listbox, используя свойство фона. Но как установить желаемое изображение в качестве фона для элементов списка?

Спасибо.


person Xander    schedule 08.05.2012    source источник
comment
Я не уверен в том, что вы спрашиваете. вам нужен элемент изображения (возможно, вместе с некоторым текстом) в каждом ListBoxItem, а затем хотите установить эти изображения?   -  person ry8806    schedule 08.05.2012
comment
Сэр, я хочу сделать в обоих направлениях. Первоначально установка изображения в ListBoxItem в порядке.   -  person Xander    schedule 08.05.2012


Ответы (2)


Вам придется переопределить свойство ItemTemplate ListBox. Если вы не уверены в XAML, попробуйте использовать Expression Blend.

Вот пример того, как может выглядеть ваш XAML. Я создал новое приложение, используя приложение Pivot Template.

        <ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                  <StackPanel Margin="0,0,0,17" Width="432" Height="78">
                    <StackPanel.Background>
                        <ImageBrush Stretch="Fill" ImageSource="/Koala.jpg"/>
                    </StackPanel.Background>
                      <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                      <TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
                  </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

Таким образом, ItemTemplate по умолчанию использует StackPanel в качестве основного контейнера. Что вы хотите сделать здесь, так это установить изображение в качестве фона этой панели StackPanel. Вот что означают следующие строки:

                <StackPanel.Background>
                    <ImageBrush Stretch="Fill" ImageSource="/Koala.jpg"/>
                </StackPanel.Background>

С помощью приведенного выше кода вы устанавливаете ImageBrush в качестве свойства Background панели StackPanel.

С этим кодом каждый ListBoxItem будет отображать коалу.

person Renaud Dumont    schedule 08.05.2012

Может помочь обертывание элемента списка с помощью границы и настройка фона. Следуйте этому примеру.

  <Border Width="380" Height="60" Margin="0,0,0,10" >
       <Border.Background>
          <ImageBrush ImageSource="Images/menu_bg.png" />
       </Border.Background>
       <TextBlock  Foreground="Black" FontSize="22" Text="{Binding}" HorizontalAlignment="Center" VerticalAlignment="Center"  />
   </Border>
person dasumohan89    schedule 22.10.2013