【问题标题】:Move (zoom and pan) around a large Canvas在大画布周围移动(缩放和平移)
【发布时间】:2014-01-17 10:50:07
【问题描述】:

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

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

这是一种“Prezi墙”。

【问题讨论】:

    标签: wpf animation canvas zooming pan


    【解决方案1】:

    这只是答案的一半或四分之三,但希望您能填补空白。您可以尝试使用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 帖子以获取有关此方法的更多帮助。

    【讨论】:

      猜你喜欢
      • 2017-05-30
      • 2018-05-13
      • 2011-11-29
      • 1970-01-01
      • 2014-09-14
      • 2015-03-30
      • 1970-01-01
      • 2013-12-17
      • 1970-01-01
      相关资源
      最近更新 更多