2011-10-09 2 views
13

UIElement.Clip 속성은 Geometry 개체를 취해 UIElement 외부를 클립하는 데 사용합니다. 나는 기하학적 역행을하고 요소에 구멍을 펀치하고 싶습니다.Silverlight/WPF에서 클리핑 지오메트리를 반전하는 방법은 무엇입니까?

누구든지이 작업을 수행하는 방법을 알고 있습니까?

나는 클립 지오메트리의 거꾸로 된 버전을 만드는 것이 효과가있을 것이라고 생각하지만,이를 수행 할 방법을 찾을 수 없습니다.


편집이 실버 라이트에서 사용할 수 없습니다하지만 WPF는, 다른 하나 개 형상을 뺄 수 있습니다 Geometry.Combine을 가지고 것으로 보인다. 그렇다면 요소의 경계 사각형의 사각형에서 클립 지오메트리를 뺀 다음 클립 지오메트리를 대신 사용할 수 있습니다.

답변

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> 
관련 문제