繁体   English   中英

自定义实现的缩放(ZoomableCanvas)中的性能

[英]Performance in custom implemented Zooming (ZoomableCanvas)

我正在使用ZoomableCanvas类( ZoomableCanvas)

XAML:

        <ZoomableCanvas x:Name="MyCanvas" Background="Transparent" ApplyTransform="False" MouseWheel="MyCanvas_MouseWheel" />

现在,我将10000个Rectangles添加到MyCanvas.Children和Rectangles recs列表中。

ZoomableCanvas提供的已实现滚动(当ApplyTransform为true时)是均匀的,这意味着子对象的高度和宽度会更改其值。 出于我的目的,我只希望孩子的宽度在放大时增加其大小。高度不应更改。 为此,我添加了以下自定义行为。

private void MyCanvas_MouseWheel(object sender, MouseWheelEventArgs e)
{
    foreach (Rectangle r in this.recs)
    {     
        r.Width = r.Width + 10;
    }
}

这是可行的,但与实现的Zooming super slow比较。 为什么实现的缩放如此之快,并且有可能以一种高性能的方式实现我对自定义缩放的意图(仅影响对象的宽度)?


我也使用ZoomableCanvas并有相同的问题。
我所做的是通过更换比例依赖属性到2个属性, 的ScaleXscaleY提高ZoomableCanvas。

为了简化改进。
1.复制依赖项属性Scale并粘贴两次,分别为ScaleX和ScaleY
2.删除或注释Scale依赖项属性
3.编译,错误报告将简化查找使用旧Scale属性的位置
4.改用ScaleX和ScaleY修改旧的Scale用法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM