如何在WPF中创建具有背景的画笔?

时间:2014-07-12 11:27:03

标签: wpf graphics

我想创建一个在右上角绘制椭圆的画笔,我试过这个:

<DrawingBrush Stretch="None" AlignmentX="Right" AlignmentY="Top">
    <DrawingBrush.Drawing>
        <GeometryDrawing Brush="Green">
            <GeometryDrawing.Geometry>
                <EllipseGeometry RadiusX="60.0" RadiusY="60.0" />
            </GeometryDrawing.Geometry>
        </GeometryDrawing>
    </DrawingBrush.Drawing>
</DrawingBrush>

椭圆位于其位置,但其余区域是透明的。我可以创建一个在右上角绘制椭圆的画笔,背景不透明吗?我可以使用另一个画笔作为背景吗?

1 个答案:

答案 0 :(得分:1)

您的DrawingBrush可以包含带有多个绘图的DrawingGroup,每个绘图都有自己的画笔。在这里,我添加了一个淡绿色RectangleGeometry,它适合您的椭圆并作为背景:

    <DrawingBrush Stretch="None" AlignmentX="Right" AlignmentY="Top">
        <DrawingBrush.Drawing>
            <DrawingGroup>
                <GeometryDrawing Brush="PaleGreen">
                    <GeometryDrawing.Geometry>
                        <RectangleGeometry Rect="-60,-60,120,120" />
                    </GeometryDrawing.Geometry>
                </GeometryDrawing>
                <GeometryDrawing Brush="Green">
                    <GeometryDrawing.Geometry>
                        <EllipseGeometry RadiusX="60.0" RadiusY="60.0" />
                    </GeometryDrawing.Geometry>
                </GeometryDrawing>
            </DrawingGroup>
        </DrawingBrush.Drawing>
    </DrawingBrush>

鉴于要求背景填充所有可用空间,我建议给填充画笔Window.Background,然后在右上角覆盖另一个元素以包含椭圆。