C# WPF-创建颜色网格
我在WPF中有一个ViewModel,看起来像这样:C# WPF-创建颜色网格,c#,wpf,mvvm,colors,grid,C#,Wpf,Mvvm,Colors,Grid,我在WPF中有一个ViewModel,看起来像这样: public class SwatchViewModel { public ObservableCollection<Color> Colors { get; private set; } } 我想显示集合中的每种颜色,并将它们排列在列中。每个列在控件中应占据相同的空间量,并且组合的所有列应填充控件的宽度。控件的大小可以任意调整 因此,如果颜色包含{Colors.Red,Colors.Green,Colors.Blue}
public class SwatchViewModel
{
public ObservableCollection<Color> Colors { get; private set; }
}
我想显示集合中的每种颜色,并将它们排列在列中。每个列在控件中应占据相同的空间量,并且组合的所有列应填充控件的宽度。控件的大小可以任意调整
因此,如果颜色包含{Colors.Red,Colors.Green,Colors.Blue},那么我需要三列,每一列占据控件宽度的三分之一,每一列都有适当的颜色
这样做的最佳方式是什么?它似乎适合ItemsControl,但ItemsControl不会拉伸其项以填充可用宽度。。。这是电网的工作。。。但网格的列无法绑定
XAML是首选,不过如果必要的话,我很乐意使用C。您可以使用UniformGrid。一个统一的网格正好满足您的需要,它根据包含的子元素的数量添加单元格
例如:
<ItemsControl ItemsSource="..." ItemTemplate="...">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
将行数设置为1会将行数限制为1 duh….您可以使用UniformGrid。一个统一的网格正好满足您的需要,它根据包含的子元素的数量添加单元格
例如:
<ItemsControl ItemsSource="..." ItemTemplate="...">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
将行数设置为1会将行数限制为1 duh….您是否也对选择行为感兴趣?您是否也对选择行为感兴趣?