这种填充xaml中的矩形是可能的吗?
我不想使用渐变来填充矩形,就像在每个部分的图像中使用不同的纯色画笔一样。
由于
答案 0 :(得分:5)
试试这个:
<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>
答案 1 :(得分:1)
回复:你的评论 - 关注的只是它的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<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) } };