0
我有看起来数据模板的定义如下:动态刷in XAML
<DataTemplate DataType="{x:Type HeatMap:BlockItem}">
<Grid Visibility="{Binding IsVisible}">
<Border Name="BlockBorder" Width="{Binding Width}" Height="{Binding Height}">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="{Binding Colour}" Offset="1"/>
<GradientStop Color="White"/>
</LinearGradientBrush>
</Border.Background>
</Border>
</Grid>
</DataTemplate>
如可以看到的,BlockItem
具有称为Colour
Color
类型被绑定到的第一颜色的一个属性LinearGradientBrush
填充边框,使其看起来像填充的矩形。
现在我并不总是希望线性渐变笔刷设计这个矩形的填充。例如,我的画布上的某些矩形可能需要填充SolidBrushes。我认为建立在BlockItem
类而不是一个Color
属性Brush
财产和有约束力的整个Border.Background
到,但有2个问题是:
- 我不知道XAML看起来应该指定一个绑定到整个对象
Background
属性。 - 在我创建
BlockItem
的代码中,如果我为每个BlockItem实例化一个新的Brush(记住,可能有许多在一个画布上绘制),这会不会使它效率低下和速度慢?