缩放和平移图像画布

时间:2011-10-20 22:39:54

标签: c# silverlight xaml

我有一个银色灯Canvas,上面有图纸(多边形)。我需要开发一个控件来缩放和平移此画布在工作区域内(Border单元格内的Grid,如下所示),如下所示。做这个的最好方式是什么。有没有我可以使用的库?

我也需要能够将绘图添加到缩放/平移的画布中。

http://i54.tinypic.com/1zbe7pf.png

2 个答案:

答案 0 :(得分:2)

互联网上提供了大量代码示例。查看ZoomControlCodePlex

答案 1 :(得分:1)

您可以尝试创建一个基本上是画布内的图像的UserControl,并公开两个变换属性来控制缩放和平移。 ScaleTransform将处理缩放,TranslateTransform将处理平移。您可以从它们中创建CompositeTransform,并将其指定为画布的RenderTransform。

您可以将缩放滑块绑定到ScaleTransform,并处理鼠标事件以更改TranslateTransform。只要相对于应该起作用的画布本身获得鼠标坐标(即mouseEventArgs.GetPosition(canvas))。