2009-03-28 3 views
4

저는 Canvas가 WPF이고 캔버스 아라 (Canvas ara)의 가장자리 밖에 그려지지 않도록하고 싶습니다. WPF에서는 캔버스의 ClipToBounds 속성을 True로 설정하면 예상대로 작동하므로이 작업은 간단합니다.UIElement.ClipToBounds는 WPF이지만 Silverlight는 아닙니다. Silverlight에서 시뮬레이션하는 방법?

예제 XAML을 Silverlight로 이식하면 ClipToBounds가 없기 때문에 문제가 발생합니다! 이 기능을 시뮬레이션하는 방법이 있습니까? 필자는 Canvas에서 파생되어 필요하다면 Measure/Arrange 메소드를 오버라이드하게되어 기쁩니다.

답변

7

해결책을 직접 찾았습니다. 다음과 같이 ArrangeOverride 메서드를 재정의하십시오.

protected override Size ArrangeOverride(Size finalSize) 
{ 
    RectangleGeometry clipRectGeometry = new RectangleGeometry(); 
    clipRectGeometry.Rect = new Rect(new Point(0,0), finalSize); 
    Clip = clipRectGeometry; 

    return base.ArrangeOverride(); 
} 
+0

그러나 컨트롤의 기본 클리핑을 어떻게 방지 할 수 있습니까? –

관련 문제