我可以使用background属性将图像设置为Listbox。 但是,如何将所需图像设置为列表框项目的背景?
感谢。
答案 0 :(得分:2)
您必须重新定义ListBox的ItemTemplate属性。如果你对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设置为StackPanel的Background属性。
使用该代码,每个ListBoxItem将显示一个考拉。
答案 1 :(得分:1)
使用边框包装列表框项目并设置背景可能会有所帮助。请遵循此示例
<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>