【发布时间】:2014-01-17 10:50:07
【问题描述】:
我在画布上放置了很多图像(大约 150 页转换为 PDF)。 我希望能够通过动画运动(缩放和平移)从这个画布的一个区域移动到另一个区域。
我的动画键在一个列表框中。我有一个“播放”按钮来播放所有内容。 当我单击动画键时,我的“相机”会自动移动到定义的位置。
这是一种“Prezi墙”。
【问题讨论】:
标签: wpf animation canvas zooming pan
我在画布上放置了很多图像(大约 150 页转换为 PDF)。 我希望能够通过动画运动(缩放和平移)从这个画布的一个区域移动到另一个区域。
我的动画键在一个列表框中。我有一个“播放”按钮来播放所有内容。 当我单击动画键时,我的“相机”会自动移动到定义的位置。
这是一种“Prezi墙”。
【问题讨论】:
标签: wpf animation canvas zooming pan
这只是答案的一半或四分之三,但希望您能填补空白。您可以尝试使用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 帖子以获取有关此方法的更多帮助。
【讨论】: