如何在Silverlight/WPF中反转剪切几何图形?

13

UIElement.Clip 属性接受一个 Geometry 对象,并使用它来剪切掉 UIElement 外部的部分。我希望做到相反的几何操作,即向元素中打一个洞。

有人知道如何实现吗?

我想象创建一个剪切几何形状的反转版本可能会起作用,但我找不到这样做的方法。


编辑 看起来 WPF 有Geometry.Combine,可以用来从一个几何图形中减去另一个几何图形,尽管在 Silverlight 中没有这个功能。如果有的话,我可以从元素边框的矩形中减去剪切几何形状,然后使用该结果进行剪切。

1个回答

18

Silverlight中的一种方法是使用GeometryGroup,并在组中包含一个起始位置非常遥远的非常大的矩形。

例如,以下蓝色正方形有较小正方形的孔:

    <Rectangle Fill="Blue" HorizontalAlignment="Center" VerticalAlignment="Center" Height="200" Width="200">
        <Rectangle.Clip>
            <GeometryGroup>
                <RectangleGeometry Rect="-2048 -2048 4096 4096" />
                <RectangleGeometry Rect="100 100 50 50" />
            </GeometryGroup>
        </Rectangle.Clip>
    </Rectangle>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接