我有一个银色灯Canvas
,上面有图纸(多边形)。我需要开发一个控件来缩放和平移此画布在工作区域内(Border
单元格内的Grid
,如下所示),如下所示。做这个的最好方式是什么。有没有我可以使用的库?
我也需要能够将绘图添加到缩放/平移的画布中。
答案 0 :(得分:2)
互联网上提供了大量代码示例。查看ZoomControl和CodePlex。
答案 1 :(得分:1)
您可以尝试创建一个基本上是画布内的图像的UserControl,并公开两个变换属性来控制缩放和平移。 ScaleTransform将处理缩放,TranslateTransform将处理平移。您可以从它们中创建CompositeTransform,并将其指定为画布的RenderTransform。
您可以将缩放滑块绑定到ScaleTransform,并处理鼠标事件以更改TranslateTransform。只要相对于应该起作用的画布本身获得鼠标坐标(即mouseEventArgs.GetPosition(canvas)
)。