我使用基于 StackPanel 的元素模板在 XAML 中有一个项目列表 (ListBox)。布局很好,但我现在想要一个矩形作为每个项目的背景 - 在每个项目周围创建一个框。
我正在考虑以某种方式使用 Canvas,但由于每个项目的高度各不相同(以及 StackPanel 内项目的高度),我不知道该怎么做(我是 C#/XAML 的新手)。在这种情况下,模板的最佳组合是什么?
我使用基于 StackPanel 的元素模板在 XAML 中有一个项目列表 (ListBox)。布局很好,但我现在想要一个矩形作为每个项目的背景 - 在每个项目周围创建一个框。
我正在考虑以某种方式使用 Canvas,但由于每个项目的高度各不相同(以及 StackPanel 内项目的高度),我不知道该怎么做(我是 C#/XAML 的新手)。在这种情况下,模板的最佳组合是什么?
你可以在一个中指定它,ItemTemplate
它会做你想做的事,比如;
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Border BorderBrush="Red" BorderThickness="2" Background="Blue"/>
<!-- Insert the rest of your Item template stuff here -->
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
ListBox 是ItemsControl的一种,它公开了几个属性来控制项目的外观。在这种情况下,请查看 ItemContainerStyle(在 ListBox 的情况下,项目容器是 ListBoxItem 的实例)。例如,您可以将 ItemsContainerStyle 中的 Background 属性设置为某种颜色。