围绕大型画布移动(缩放和平移)

时间:2014-01-17 10:50:07

标签: wpf animation canvas zoom pan

我在画布上放了很多图像(约150页转换PDF)。 我希望能够通过设置动画(缩放和平移)来从一个区域移动到另一个区域。

我的动画键位于列表框中。我有一个“播放”按钮可以播放所有内容。 当我点击动画键时,我的“相机”会自动移动到定义的位置。

这是一种“Prezi墙”。

1 个答案:

答案 0 :(得分:0)

这只是答案的一半或四分之三,但希望你能填补空白。您可以尝试使用VisualBrush Class。首先,设置VisualBrush将使用完整Canvas绘制的视觉效果:

VisualBrush visualBrush = new VisualBrush();
visualBrush.Visual = yourCanvasElement;

然后使用Brush绘制,例如,Rectangle元素:

Rectangle rectangle = new Rectangle();
...
rectangle.Fill = visualBrush;

然后,您可以使用VisualBrush.Viewbox属性移动内容。现在我认为有一些放大和缩小的方法,但我现在不记得了。

或者,您可以使用ViewBox class。您可以通过更改内容的大小和ViewBox来获得缩放效果,并使用ScrollViewer获得平移效果。 StackOverflow上有一篇文章说明了这一点,因此请查看Zooming To Mouse Point With ScrollView and ViewBox in Wpf帖子以获取有关此方法的更多帮助。