通过上一篇的介绍大家应该已经了解到ScatterView 可以使开发者方便的实现控件的Manipulate 操作。细心的朋友可能发现了前面示例中矩形的缩放似乎有些问题,为了便于说明我们编写如下代码。
<Grid>
<s:ScatterView>
<Rectangle Fill="Blue" Width="200" Height="100"/>
<Ellipse Fill="Red" Width="150" Height="80"/>
</s:ScatterView>
</Grid>
在ScatterView 中分别加入了矩形和椭圆形,并且为两个图形分析别限定了长、宽尺寸。当我们对图形进行缩放操作时发现,两个图形本身尺寸并没有发生任何变化,只有ScatterViewItem 尺寸变大了。似乎图形的大小已经被长、宽参数约束住了。
Original
Resize
遇到这种情况时需要使用Viewbox 控件中,Viewbox 并不是Surface 2.0 SDK 的控件,而是一个WPF 控件。它可以使图形随ScatterViewItem 尺寸的变化而变化。如下示例代码制作两个相同的矩形,并只将其中一个嵌入Viewbox 控件。从图中可以看到Viewbox 中的红色矩形会根据ScatterViewItem 尺寸变化而自动调节。这样当我们进行Manipulate 操作时,相应的控件尺寸也会随之变化。
<Grid>
<s:ScatterView>
<Rectangle Fill="Blue" Width="200" Height="100"/>
<Viewbox>
<Rectangle Fill="Red" Width="200" Height="100"/>
</Viewbox>
</s:ScatterView>
</Grid>
本文转自Gnie博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2011/07/17/wpf-surface2sdk-manipulate-shape.html,如需转载请自行联系原作者