相关疑难解决方法(0)

Silverlight 3 - ScaleTransform或其他放大画布的方法?

我需要能够使用鼠标滚轮放大和缩小画布.我已经成功设置了鼠标滚轮处理程序,目前正在使用ScaleTransform来应用缩放; 但是,缩放不是以"直观"的方式完成的.

我正在尝试实现与MultiScaleImage,Google Maps/Earth或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>
Run Code Online (Sandbox Code Playgroud)

使用以下代码:

_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
Run Code Online (Sandbox Code Playgroud)

然而,问题仍然出现在它从左上角缩小,而不是谷歌地图等缩放在鼠标周围的网站.

silverlight controls canvas zoom

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

canvas ×1

controls ×1

silverlight ×1

zoom ×1