C# 填充xaml矩形乘以solidcolorbrush

C# 填充xaml矩形乘以solidcolorbrush,c#,.net,wpf,visual-studio-2010,xaml,C#,.net,Wpf,Visual Studio 2010,Xaml,可以在xaml中使用这种填充矩形吗 我不想使用渐变来填充矩形,因为在每个部分的图像中都使用不同的纯色笔刷 谢谢试试这个: <Rectangle Width="300" Height="100" Stroke="black" StrokeThickness="3"> <Rectangle.Fill> <LinearGradientBrush StartPoint="0 0" EndPoint="1 0"> <GradientSto

可以在xaml中使用这种填充矩形吗

我不想使用渐变来填充矩形,因为在每个部分的图像中都使用不同的纯色笔刷

谢谢

试试这个:

<Rectangle Width="300" Height="100" Stroke="black" StrokeThickness="3">
  <Rectangle.Fill>
    <LinearGradientBrush StartPoint="0 0" EndPoint="1 0">
      <GradientStop Color="red" Offset="0"/>
      <GradientStop Color="red" Offset=".33"/>
      <GradientStop Color="black" Offset=".33"/>
      <GradientStop Color="black" Offset=".34"/>
      <GradientStop Color="green" Offset=".34"/>
      <GradientStop Color="green" Offset=".66"/>
      <GradientStop Color="black" Offset=".66"/>
      <GradientStop Color="black" Offset=".67"/>
      <GradientStop Color="cyan" Offset=".67"/>
    </LinearGradientBrush>
  </Rectangle.Fill>
</Rectangle>

Re:你的评论——问题仅仅在于它是N个矩形吗?如果所有矩形都不是一个约束,则可以执行以下操作:

    <ListView ItemsSource="{Binding ColorsTiles}">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ListView ItemsSource="{Binding}">
                    <ListView.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel Orientation="Horizontal" />
                        </ItemsPanelTemplate>
                    </ListView.ItemsPanel>
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <Rectangle Fill="{Binding}" Width="100" Height="100" />
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

ColorsTiles=新的可观察集合(){
new ObservableCollection(){new SolidColorBrush(Colors.LightGreen)、new SolidColorBrush(Colors.LightBlue)、new SolidColorBrush(Colors.Blue)},
新的ObservableCollection(){new SolidColorBrush(Colors.LightSeaGreen)、new SolidColorBrush(Colors.Pink)、new SolidColorBrush(Colors.Red)};

您可以将3个指定颜色的矩形并排放置。我以前曾想过,但我的一些矩形有1、2、3或4个部分,并且颜色将绑定在viedmodel中,创建N个矩形我认为很难完成此任务。这是一个好主意,它们之间的矩形空间可以为零吗?您应该能够通过更新DataTemplate或ItemsPanelTemplate(如有必要)来实现这一点。
ColorsTiles = new ObservableCollection<ObservableCollection<SolidColorBrush>>() {
        new ObservableCollection<SolidColorBrush>(){ new SolidColorBrush(Colors.LightGreen), new SolidColorBrush(Colors.LightBlue), new SolidColorBrush(Colors.Blue) },
        new ObservableCollection<SolidColorBrush>(){ new SolidColorBrush(Colors.LightSeaGreen), new SolidColorBrush(Colors.Pink), new SolidColorBrush(Colors.Red) } };