我可以使用背景属性将图像设置为列表框。但是如何将理想的图像设置为列表框项目的背景?
谢谢。
您必须重新定义 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 都会显示一只考拉。
使用边框包装列表框项目并设置背景可能会有所帮助。遵循此示例
<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>