我想获得的是任何用于对控件集合进行缩放的方法,但保留此控件子集的宽度,高度和位置。我已经看到了这个问题How to keep element size while WPF zoom in and out?,似乎非常符合我的要求,但没有回答,也不是很明确,所以会改善问题。WPF缩放但保留一些项目的宽度,高度和位置
目前,我正在使用为WPF工具包附带的.net framework 4.0扩展控件,但我可以更改它。我有结构如下:
<Border x:Name="drawRegionBorder" Grid.Column="1" Grid.Row="1" d:LayoutOverrides="Width, Height" BorderThickness="1" CornerRadius="4" BorderBrush="{StaticResource BorderBrush}" >
<xctk:Zoombox x:Name="zoomBox">
<Grid x:Name="drawRegion" Height="{Binding Height}" Width="{Binding Width}" HorizontalAlignment="Left" VerticalAlignment="Top" Background="{DynamicResource DrawBackgroundBrush}">
<Image Source="{Binding Image}" ... />
<ListBox x:Name="points" ItemsSource="{Binding Points}">
<ListBox.Template>
<ControlTemplate>
<Canvas IsItemsHost="True"/>
</ControlTemplate>
</ListBox.Template>
</ListBox>
<ListBox x:Name="paths" ItemsSource="{Binding SomePaths}">
<ListBox.Template>
<ControlTemplate>
<Canvas IsItemsHost="True"/>
</ControlTemplate>
</ListBox.Template>
</ListBox>
<!--... Others ...-->
</Grid>
</xctk:Zoombox>
</Border>
我有什么在这里,有几个列表框,一个网格内,并且项目小组为每个列表框是一个画布,所以每个孩子(但图像)将位于画布内,并且每个孩子将设置Canvas.X
和Canvas.Y
属性。所以,我想要的,是任何使缩放(放大或缩小),并保持poitns(椭圆)或路径的大小...
由于缩放,是一个wpf的比例转换,我想可能是这样做的一种方式,当放大,缩小控制我想保持大小,反之亦然。
混合设计器的一个示例是混合设计器,例如当您使用行和列放大网格时,列指示器保持原始尺寸,这样的事情就是我想要的点和路径。
我会感谢任何解决方案,可能是图书馆,附属财产,行为或代码。 Thaknks
你有什么参考我在哪里可以看到一些代码或接近代码。 – 2013-03-11 22:00:56
我已经添加了关于装饰教程的链接,并提供了关于如何实现缩放的评论。 – cunningdave 2013-03-11 22:13:07
谢谢,我会看看 – 2013-03-11 23:35:17