2016-11-15 18 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代码中使用了scale转换来实现这一点。但是现在,我无法再在画布上应用比例变换来调整画布(线条和多边形)的内容。

请帮我解决这个问题。提前致谢。

+2

您在这里错过了一些信息,最重要的是:您想要做什么?预期的结果是什么?你可以在这里阅读更多细节:[MCVE] –

+1

可能与:[WPF:如何使在Canvas内中心(0,0)](http://stackoverflow.com/questions/1871358/wpf-how-to - 0-0-in-center-a-canvas) –

回答

2

一个更简单的“中心”坐标画布的系统起源将是把它在一个2x2格的右下角单元格的方式。由于画布的默认值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

非常感谢。它的工作完美。 –