我有这个问题。
所以我有一堆必须在画布上可视化的数据(例如超过5000个项目)。所以我把它们画成一串水平线上的垂直矩形,有点像这样:
--- | - ||||| --- | --- --- ||| || ---- -------- |||||||
现在,由于画布很小,我只在不同的缩放级别绘制不同数量的矩形。因此,如果我放大更多,线条变长,我可以看到更多的矩形。
每次放大时都会出现问题,我必须清除整个画布,然后使用新的缩放比例重新调整所有内容。它真的太糟糕了,绘图很慢,缩放也不是很好。
所以我想知道是否有一种方法可以实现更快的绘图和良好的缩放(就像那些矢量图,你可以无限放大)??
答案 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了吗?我没有使用它,但看起来它的设计完全符合您的要求。