我有一个silverlight Canvas,它包含了一个带有图形的图像(多边形)。我需要开发一个控件来缩放和平移工作区中的画布(目前是Grid单元格中的Border),如下所示。做这件事最好的方法是什么?有没有我可以使用的库?
我还需要能够将绘图添加到缩放/平移的画布中。

发布于 2011-10-21 07:22:39
互联网上有很多代码示例。查看ZoomControl和CodePlex。
发布于 2011-10-21 07:18:15
您可以尝试创建一个基本上是画布中的图像的UserControl,并公开两个转换属性来控制缩放和平移。ScaleTransform将处理缩放,而TranslateTransform将处理平移。您可以从这两个元素创建CompositeTransform,并将其指定为画布的RenderTransform。
您可以将缩放滑块绑定到ScaleTransform,并处理鼠标事件以更改TranslateTransform。只要您获得相对于画布本身的鼠标坐标,就可以工作(即mouseEventArgs.GetPosition(canvas))。
https://stackoverflow.com/questions/7843102
复制相似问题