如何绘制双色对角背景?

时间:2015-12-01 15:15:29

标签: wpf xaml background brush diagonal

如何绘制双色对角线背景? 我希望颜色由容器的对角线分开。 我希望在调整容器大小后保留对角线。

我的DataGrid中有两类按行颜色划分的行。很少有两个类别,所以我想像上面那样设置背景。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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