如何更快地绘制形状元素并使其在wpf中缩放?

时间:2012-04-12 07:49:12

标签: wpf user-controls wpf-controls drawing

我有这个问题。

所以我有一堆必须在画布上可视化的数据(例如超过5000个项目)。所以我把它们画成一串水平线上的垂直矩形,有点像这样:

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

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

每次放大时都会出现问题,我必须清除整个画布,然后使用新的缩放比例重新调整所有内容。它真的太糟糕了,绘图很慢,缩放也不是很好。

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

2 个答案:

答案 0 :(得分:1)

您是否尝试过ScaleTransform Class

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

也请参阅How to: Scale an Element。出于性能原因:

  • 冻结Freezables

  •   

    更新而不是替换RenderTransform

         

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

答案 1 :(得分:1)

你看过ZoomableCanvas了吗?我没有使用它,但看起来它的设计完全符合您的要求。