我需要能够放大和缩小使用鼠标滚轮画布的。 我已经成功地建立了鼠标滚轮的处理程序,我目前使用ScaleTransform应用缩放; 然而,缩放不是一种“直观”的方式完成的。
我试图做到“缩放”,你可以在MultiScaleImage看到同样风格的,谷歌地图/地球或Adobe Acrobat Reader - 但不是同一个图像,与控制。 过渡并不需要“平稳”或动画(除非它是一个更简单的方法),但功能必须是相同的。
任何想法或意见将得到高度赞赏和感谢提前!
编辑:我已经成功地“平滑”使用的动画缩放:
<Canvas.Resources>
<Storyboard x:Name="ZoomStoryboard">
<DoubleAnimation x:Name="ZoomAnimationX"
Storyboard.TargetName="Workspace"
Storyboard.TargetProperty="Canvas.RenderTransform.ScaleTransform.ScaleX"
Duration="0:0:0.2"/>
<DoubleAnimation x:Name="ZoomAnimationY"
Storyboard.TargetName="Workspace"
Storyboard.TargetProperty="Canvas.RenderTransform.ScaleTransform.ScaleY"
Duration="0:0:0.2"/>
</Storyboard>
</Canvas.Resources>
用下面的代码:
_Zoom += (args.Delta / 7);
if (_Zoom < 0.15)
_Zoom = 0.15;
ZoomAnimationX.To = _Zoom;
ZoomAnimationY.To = _Zoom;
ZoomStoryboard.Begin();
ZoomScale.Text = _Zoom.ToString("0.00") + "x";
_PreviousMousePosition = _CurrentMousePosition
但是,问题仍然出现,它是缩小的左上角的,而不是像谷歌地图在变焦为“绕”鼠标点。