Я могу установить изображение в Listbox, используя свойство фона. Но как установить желаемое изображение в качестве фона для элементов списка?
Спасибо.
Я могу установить изображение в Listbox, используя свойство фона. Но как установить желаемое изображение в качестве фона для элементов списка?
Спасибо.
Вам придется переопределить свойство 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 будет отображать коалу.
Может помочь обертывание элемента списка с помощью границы и настройка фона. Следуйте этому примеру.
<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>