1

我使用基于 StackPanel 的元素模板在 XAML 中有一个项目列表 (ListBox)。布局很好,但我现在想要一个矩形作为每个项目的背景 - 在每个项目周围创建一个框。

我正在考虑以某种方式使用 Canvas,但由于每个项目的高度各不相同(以及 StackPanel 内项目的高度),我不知道该怎么做(我是 C#/XAML 的新手)。在这种情况下,模板的最佳组合是什么?

4

2 回答 2

3

你可以在一个中指定它,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>
于 2013-05-22T20:36:20.257 回答
0

ListBox 是ItemsControl的一种,它公开了几个属性来控制项目的外观。在这种情况下,请查看 ItemContainerStyle(在 ListBox 的情况下,项目容器是 ListBoxItem 的实例)。例如,您可以将 ItemsContainerStyle 中的 Background 属性设置为某种颜色。

于 2013-05-22T20:30:54.360 回答