Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF-创建颜色网格_C#_Wpf_Mvvm_Colors_Grid - Fatal编程技术网

C# WPF-创建颜色网格

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}

我在WPF中有一个ViewModel,看起来像这样:

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….

您是否也对选择行为感兴趣?您是否也对选择行为感兴趣?