2016-11-15 2 views
1

아래 xaml 코드를 사용하여 WPF 캔버스 원점을 화면 가운데로 변경했습니다.XAML의 크기 조절

<Canvas.RenderTransform> 
    <TransformGroup> 
     <ScaleTransform ScaleX="2" ScaleY="2"/> 
     <TranslateTransform 
      X="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=Canvas}}" 
      Y="{Binding ActualHeight, RelativeSource={RelativeSource AncestorType=Canvas}}"/> 
     <ScaleTransform ScaleX="0.5" ScaleY="0.5"/> 
    </TransformGroup> 
</Canvas.RenderTransform> 

위의 xaml 코드에서 스케일 변환을 사용했습니다. 그러나 이제 캔버스 (선 및 다각형)의 내용을 크기 조정하기 위해 더 이상 캔버스에 스케일 변형을 적용 할 수 없었습니다.

이 문제를 해결하는 데 도움을주십시오. 미리 감사드립니다.

+2

여기서 가장 중요한 정보는 누락되었습니다. 무엇을하려하십니까? 예상되는 결과는 무엇입니까? 자세한 내용은 다음을 참조하십시오. [mcve] –

+1

아마도 관련이 있습니다. [WPF : 캔버스 내부에 (0,0)을 만드는 방법] (http://stackoverflow.com/questions/1871358/wpf-how-to) -make-the-0-0-in-center-a-canvas) –

답변

2

Canvas의 좌표계 원점을 "중심에 두는"방법은 2x2 Grid의 오른쪽 아래 셀에 배치하는 것이 훨씬 간단합니다. Canvas 'ClipToBounds 속성의 기본값은 false이므로 음수 좌표의 요소는 계속 표시됩니다.

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <Canvas Grid.Column="1" Grid.Row="1"> 
     ... 
    </Canvas> 
</Grid> 
+0

고맙습니다. 완벽하게 작동합니다. –