2015-12-01 66 views
0

如何繪製兩色對角線背景? 我希望顏色由容器的對角線分隔。 我想在對容器進行大小調整後保留對角線。如何繪製雙色對角線背景?

我在我的DataGrid中有兩種類別的行按照顏色進行了清理。幾行都有這兩個類別,所以我想像上面那樣設置他們的背景。

+0

我試過LinearGradientBrush,但它不能被設置爲對角線。 –

+1

@WaldemarGałęzinowski'LinearGradientBrush'可以設置爲對角線...參見[here](http://www.java2s.com/Tutorial/VB/0290__Windows-Presentation-Foundation/LinearGradientBrushExamples.htm)。 – Rachel

回答

0

這可以通過使用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> 

調整大小不是問題,因爲您可以在附加的圖片中看到。 enter image description here

1

您可以使用一對拉伸的路徑對象來創建「背景」,然後在頂部覆蓋任何你想要的東西。無論網格的大小如何,兩個着色區域之間的邊界將保持固定在對角線上。

<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> 
+0

刪除了我的回答,因爲我錯過了關於調整問題的部分。 +1 –

+0

@ChrisW。你的回答看起來很好,我認爲你只需要將刷子應用到動態調整大小而不是靜態大小的矩形:) – Rachel