1

我有这个问题。

所以我有一堆必须在画布上可视化的数据(比如超过 5000 个项目)。因此,我将它们绘制为水平线上的一堆垂直矩形,如下所示:

---|---|||||---|---|||---||----|||||||--------

现在,因为画布很小,我只在不同的缩放级别绘制不同数量的矩形。所以如果我放大更多,这条线会变得更长,我可以看到更多的矩形。

问题是每次放大时,我都必须清除整个画布,并使用新的缩放比例重新绘制所有内容。它真的很烂,绘图很慢,缩放也不是很好。

所以我想知道有没有一种方法可以实现更快的绘图和良好的缩放(就像那些矢量图,你可以无限放大)?

4

2 回答 2

1

你试过ScaleTransform 类吗?

<Canvas.RenderTransform>
    <ScaleTransform ScaleX="2" ScaleY="2" />
</Canvas.RenderTransform>

请参阅如何:也缩放元素。出于性能原因:

  • 冻结你的Freezables

  • 更新而不是替换 RenderTransform

    您可以更新 Transform 而不是将其替换为 RenderTransform 属性的值。在涉及动画的场景中尤其如此。通过更新现有的 Transform,您可以避免启动不必要的布局计算。

于 2012-04-12T07:59:09.613 回答
1

你看过ZoomableCanvas吗?我没有用过它,但它看起来就像是为了做你想做的事而设计的。

于 2012-04-12T08:09:10.297 回答