我正在寻找一种方法来使用 WPF 中定义的画笔的径向扫描来填充某些东西。我将在一系列图像中分解我想要的东西,以试图使其清晰。

假设我在 WPF 中定义了一个看起来像这样的画笔:

然后我想像这样使用那把刷子的一片:

并将其平铺在一个圆的半径上,如图所示:

最后,为了填充形状,我想将画笔扫过圆圈的所有角度,为我提供类似于以下的结果:

在这种特殊情况下,我试图制作同心圆。我知道我可以使用 RadialGradientBrush 实现这一点,但这是一个令人讨厌的解决方案,因为为了精确控制同心圆的宽度,我需要根据圆的大小更改径向停止的数量。更糟糕的是,如果圆圈大小发生变化,除非我使用某种基于圆圈宽度/高度的转换器,否则径向停止点不会改变。

我希望有一个干净的解决方案来做到这一点,也许是路径或其他东西,但欢迎任何其他制作受控大小的圆形切片的建议。

最佳答案

这个用画笔画几个同心圆怎么样?

<Rectangle>
    <Rectangle.Fill>
        <DrawingBrush Stretch="Uniform">
            <DrawingBrush.Drawing>
                <GeometryDrawing>
                    <GeometryDrawing.Pen>
                        <Pen Brush="Black" Thickness="1"/>
                    </GeometryDrawing.Pen>
                    <GeometryDrawing.Geometry>
                        <GeometryGroup>
                            <EllipseGeometry RadiusX="1" RadiusY="1"/>
                            <EllipseGeometry RadiusX="3" RadiusY="3"/>
                            <EllipseGeometry RadiusX="5" RadiusY="5"/>
                            <EllipseGeometry RadiusX="7" RadiusY="7"/>
                            <EllipseGeometry RadiusX="9" RadiusY="9"/>
                            <EllipseGeometry RadiusX="11" RadiusY="11"/>
                        </GeometryGroup>
                    </GeometryDrawing.Geometry>
                </GeometryDrawing>
            </DrawingBrush.Drawing>
        </DrawingBrush>
    </Rectangle.Fill>
</Rectangle>

关于c# - 刷子的径向扫描,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17053213/

10-13 06:49