C#绘图:绘制中间有孔的多边形的最佳方法是什么

Car*_*rri 4 c# wpf drawing gdi

我有一个由外边框和内边框定义的形状.如果没有内部边界,形状是坚固的.如果有一个内边框,我希望只在两个边框之间定义多边形/路径; 我不想绘制外部然后在背景颜色中绘制内部.

例如,如果我有一个由外边框的以下坐标定义的正方形:

{0,0}, {20, 0}, {20,20}, {0, 20}
Run Code Online (Sandbox Code Playgroud)

然后那个正方形是20x20,其原点是左下角.那个形状有一个从中心切出的三角形:

{10,10}, {15,10}, {15,15}
Run Code Online (Sandbox Code Playgroud)

如何使用WPF或GDI +创建包含此形状的路径?

Mår*_*röm 6

您可以使用XAML绘制该形状:(关键是使用CombinedGeometrywith GeometryCombineMode="Exclude")

<Path Fill="Black">
    <Path.Data>
        <CombinedGeometry GeometryCombineMode="Exclude">
            <CombinedGeometry.Geometry1>
                <RectangleGeometry Rect="0,0,20,20"/>
            </CombinedGeometry.Geometry1>
            <CombinedGeometry.Geometry2>
                <PathGeometry>
                    <PathFigure StartPoint="10,10">
                        <LineSegment Point="15,10"/>
                        <LineSegment Point="15,15"/>
                    </PathFigure>
                </PathGeometry>
            </CombinedGeometry.Geometry2>
        </CombinedGeometry>
    </Path.Data>
</Path>
Run Code Online (Sandbox Code Playgroud)

  • +1 Worth指出这里的键是'GeometryCombineMode ="Exclude"` (3认同)