XAML 缩放和平移图像画布

cyvaqqii  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(118)

我有一个silverlight Canvas,它保存了一个带有绘图(多边形)的图像。我需要开发一个控件来缩放和平移这个画布在一个工作区(Border在一个Grid单元格内,截至目前),如下所示。什么是最好的方法来做到这一点。有没有我可以使用的库?
我需要能够添加到绘图缩放/平移画布太。
x1c 0d1x的数据

3z6pesqy

3z6pesqy1#

您可以尝试创建一个UserControl,它基本上是画布中的一个图像,并公开两个transform属性来控制缩放和平移。ScaleTransform将处理缩放,TranslateTransform将处理平移。您可以从这两个创建CompositeTransform并将其指定为画布的RenderTransform。
您可以将缩放滑块绑定到ScaleTransform,并处理鼠标事件来更改TranslateTransform。只要您获得相对于画布本身的鼠标坐标,就应该可以工作(即mouseEventArgs.GetPosition(canvas))。

jvidinwx

jvidinwx2#

在互联网上有很多代码示例。查看ZoomControlCodePlex

iswrvxsc

iswrvxsc3#

找到了一个有用的讨论与多个答案关于类似的问题。找到更详细的答案由伊恩奥克斯和其他人在pan-zoom-image-stackoverflow-answer
另一个很好的解决方案可以在阿什利戴维斯的代码项目中找到:A WPF Custom Control for Zooming and Panning

相关问题