2010-07-23 6 views
0

저는 컨트롤에 캔바스를 배치하려고합니다. 그런 다음 레이아웃 변환을 사용하여 확대/축소 기능을 구현합니다. 문제는 캔버스를 확대하는 것이 쉽지만 필수 섹션을 자르기가 어렵다는 것입니다. 나는 다음과 같은 예제 코드로 귀결 생각 :WPF 캔버스 확대/축소 및 렌더링

<Canvas HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100"> 
     <Rectangle Width="5" Height="5" Canvas.Bottom="0" Canvas.Left="0" Fill="Green" /> 
     <Rectangle Width="5" Height="5" Canvas.Bottom="0" Canvas.Right="0" Fill="Green" /> 
     <Rectangle Width="5" Height="5" Canvas.Top="0" Canvas.Left="0" Fill="Green" /> 
     <Rectangle Width="5" Height="5" Canvas.Top="0" Canvas.Right="0" Fill="Green" /> 
     <Rectangle Width="5" Height="5" Canvas.Top="-10" Canvas.Right="0" Fill="Blue" /> 
     <Rectangle Width="5" Height="5" Canvas.Bottom="110" Canvas.Left="0" Fill="Blue" /> 
    </Canvas> 

렌더링에서 파란색 사각형을 차단하는 방법은 그들이 캔버스의 경계 외부로 있나요? 그것이 내 컨트롤에 캔버스를 추가함으로써 서서 효과적으로 캔버스로 내 전체 컨트롤을 켭니다. 사전에

감사합니다, 쉐인 캔버스에

답변

3

사용 ClipToBounds 특성 :

<Canvas ClipToBounds="True" 
     HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100"> 
    <Rectangle Width="5" Height="5" Canvas.Bottom="0" Canvas.Left="0" Fill="Green" /> 
    <Rectangle Width="5" Height="5" Canvas.Bottom="0" Canvas.Right="0" Fill="Green" /> 
    <Rectangle Width="5" Height="5" Canvas.Top="0" Canvas.Left="0" Fill="Green" /> 
    <Rectangle Width="5" Height="5" Canvas.Top="0" Canvas.Right="0" Fill="Green" /> 
    <Rectangle Width="5" Height="5" Canvas.Top="-10" Canvas.Right="0" Fill="Blue" /> 
    <Rectangle Width="5" Height="5" Canvas.Bottom="110" Canvas.Left="0" Fill="Blue" /> 
</Canvas> 
+0

우수, 환호 – Shane