【问题标题】:xaml / c# stackpanel with background rectanglexaml / c# stackpanel 带背景矩形
【发布时间】:2013-05-23 05:03:56
【问题描述】:

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

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

【问题讨论】:

    标签: c# xaml windows-phone-7.1 windows-phone


    【解决方案1】:

    您可以在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>
    

    【讨论】:

    • 如果您将 Border 和 StackPanel 放在 Grid 中,这将起作用
    • Touché @dkozl +1 这就是我快速回答并忘记单一内容规则的结果。正在更新中...
    • 谢谢,这正是我想要的!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多