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(記住,可能有許多在一個畫布上繪製),這會不會使它效率低下和速度慢?