[英]WPF - create a grid of colors
我在WPF中有一个看起来像这样的ViewModel:
public class SwatchViewModel
{
public ObservableCollection<Color> Colors { get; private set; }
}
我想显示集合中的每种颜色,将它们放在列中。 每个列应占用控件中相同的空间量,并且所有列组合应填充控件的宽度。 控制可以任意调整大小。
因此,如果Colors
包含{ Colors.Red, Colors.Green, Colors.Blue }
那么我会想要三列,每列占据控件宽度的三分之一,每列都适当地着色。
这样做的最佳方式是什么? 它似乎适合ItemsControl
除了ItemsControl
没有拉伸它的项目来填充可用的宽度......这是Grid
的一个工作......但网格的列不能绑定....
XAML是首选,但我很乐意在必要时回退到C#。
你可以使用UniformGrid
。 统一网格完全符合您的需求,它根据包含的子项数添加单元格。
例:
<ItemsControl ItemsSource="..." ItemTemplate="...">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
将Rows
设置为1
会将行计数限制为1(duh ...)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.