2011-10-09 35 views
13

UIElement.Clip özelliği, Geometry nesnesini alır ve bunu UIElement'un dışına kırpmak için kullanır. Geometrik tersini yapmak ve bunun yerine bir deliğe delik açmak istiyorum.Kırpma geometrisi Silverlight/WPF'de nasıl çevrilir?

Bunu nasıl yapacağını bilen var mı?

Klip geometrisinin tersine çevrilmiş bir sürümünü oluşturmayı hayal ediyorum, ancak bunu yapmanın bir yolunu bulamıyorum.


DÜZENLEME Silverlight'taki mevcut olmasa da WPF diğerinden bir geometri çıkarmak için kullanılabilir Geometry.Combine sahip olduğu görülmektedir. Eğer öyleyse, klibin geometrisini elementin sınırlayıcı dikdörtgenin dikdörtgensinden çıkarabiliyordum ve bunun yerine klip yapmak için kullanabiliyordum.

cevap

14

Silverlight'taki bir yaklaşım, GeometryGroup kullanmak ve uzak bir negatif konumda başlayarak çok büyük bir dikdörtgene gruptur.

Örneğin aşağıdaki mavi kare daha küçük kare delik olan: -

<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>