由于Xaml是基于矢量的,大型形状是否会使用更多内存?

时间:2012-07-06 10:35:42

标签: wpf xaml vector

正如标题所暗示的那样,我有兴趣知道一个大型的形状是否在WPF应用程序中占用更多内存,或者它是否都基于算法并且它真的不重要?

干杯,Kohan


附录,我问的原因是我希望在页面顶部有一个视觉曲线标题。我使用位于页面顶部的非常大的椭圆来完成此操作,大部分椭圆离开页面,我只是查看了一点,但它提供了所需的视觉效果。 (希望这很有意义)

我只是想知道在屏幕上放置这个巨大的椭圆是否真的很低效,而是考虑创建一个自定义路径。

2 个答案:

答案 0 :(得分:2)

像Rune Andersen所说,这取决于。

但是如果你经常重绘窗口的所有内容,就像平移和缩放一样,使用矢量可能会非常慢,因为他每次都需要重新计算每个矢量。

修改

您应该始终将椭圆转换为路径。我们的团队做了很多性能测试,Ellipse可能是最差的。在Blend中,右键单击Ellipse,您可以选择:Convert to Path。如果你想发布Ellipse,我会给你路径。

答案 1 :(得分:1)

我想 http://en.wikipedia.org/wiki/Vector_graphics

或多或少总结了使用基于矢量的表示与位图的优缺点。

表示为矢量的图形可以缩放,通常是最紧凑的表示。

如果使用某些图像处理对图像进行矢量化,最终会产生大量矢量,其中一些可能只代表一个像素 - 您可以获得非常大的矢量表示。

然而,形状的内存要求取决于其复杂性而不是像素的大小。

因此,如果您将复杂的形状缩放到图标大小并且从不将其显示得更大,那么最好使用位图格式。