2011-10-09 56 views
13

UIElement.Clip属性需要一个Geometry对象,并用它来夹住UIElement的外部。我想做几何反转,然后在元素上打一个洞。如何在Silverlight/WPF中反转裁剪几何?

任何人都知道如何做到这一点?

我想创建一个反转版本的剪辑几何会起作用,但我找不到办法做到这一点。


编辑看来,WPF有Geometry.Combine这可以用来减去另一个几何,尽管这不是在Silverlight中可用。如果是这样,我可以从元素的边界矩形的矩形中减去剪辑几何图形,然后用它来剪辑。

回答

14

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>