如何繪製兩色對角線背景? 我希望顏色由容器的對角線分隔。 我想在對容器進行大小調整後保留對角線。如何繪製雙色對角線背景?
我在我的DataGrid中有兩種類別的行按照顏色進行了清理。幾行都有這兩個類別,所以我想像上面那樣設置他們的背景。
如何繪製兩色對角線背景? 我希望顏色由容器的對角線分隔。 我想在對容器進行大小調整後保留對角線。如何繪製雙色對角線背景?
我在我的DataGrid中有兩種類別的行按照顏色進行了清理。幾行都有這兩個類別,所以我想像上面那樣設置他們的背景。
這可以通過使用DrawingBrush
來實現。這裏是一個Canvas
的背景示例,但它可以用於任何背景。
<Canvas Margin="182,229,197,43">
<Canvas.Background>
<DrawingBrush>
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="Aquamarine" Geometry="M 1,1 L 0,1 0,0 1,1"/>
<GeometryDrawing Brush="Blue" Geometry="M 0,0 L 1,1 1,0 0,0"/>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Canvas.Background>
</Canvas>
您可以使用一對拉伸的路徑對象來創建「背景」,然後在頂部覆蓋任何你想要的東西。無論網格的大小如何,兩個着色區域之間的邊界將保持固定在對角線上。
<Grid>
<Path Stretch="Fill" Data="M 0,0 L 0,1 L 1,0 L 0,0" Fill="Blue" />
<Path Stretch="Fill" Data="M 1,1 L 0,1 L 1,0 L 1,1" Fill="Red" />
<TextBlock Text="Some Text" FontSize="72" VerticalAlignment="Center" HorizontalAlignment="Center" Canvas.ZIndex="1" />
</Grid>
刪除了我的回答,因爲我錯過了關於調整問題的部分。 +1 –
@ChrisW。你的回答看起來很好,我認爲你只需要將刷子應用到動態調整大小而不是靜態大小的矩形:) – Rachel
我試過LinearGradientBrush,但它不能被設置爲對角線。 –
@WaldemarGałęzinowski'LinearGradientBrush'可以設置爲對角線...參見[here](http://www.java2s.com/Tutorial/VB/0290__Windows-Presentation-Foundation/LinearGradientBrushExamples.htm)。 – Rachel