如何在Silverlight/WPF中反转剪裁几何?

Dre*_*kes 13 .net silverlight geometry clipping clip

UIElement.Clip属性接受一个Geometry对象并使用它来剪掉外面的对象UIElement.我想做几何逆,并在元素上打一个洞.

有人知道怎么做吗?

我想创建一个倒置版本的剪辑几何可以工作,但我找不到办法做到这一点.


编辑似乎WPF Geometry.Combine可用于从一个几何体中减去一个几何体,尽管这在Silverlight中不可用.如果是,我可以从元素的边界矩形的矩形中减去剪辑几何,并使用它来剪切.

Ant*_*nes 15

Silverlight中的一种方法是使用a 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>
Run Code Online (Sandbox Code Playgroud)