Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 对图形元素使用位图或Xaml更好吗_Wpf_Silverlight_Xaml - Fatal编程技术网

Wpf 对图形元素使用位图或Xaml更好吗

Wpf 对图形元素使用位图或Xaml更好吗,wpf,silverlight,xaml,Wpf,Silverlight,Xaml,我希望我的应用程序风格与一些图形元素。图标和其他思考 从性能和最佳实践的角度来看,使用vektor图形(XAML)或将我的图形转换为PNG更好吗 为什么 我知道矢量图形是可缩放的。。。这只是基于xaml的大型应用程序的性能问题。您必须权衡自己的需求。如果仅仅是性能,那么我会说这取决于图像的数量。如果它们是一个大数字,那么XAML的性能确实会更高,否则就可以忽略不计 但我必须说的是纯粹的可维护性,特别是因为你在谈论图标之类的东西,你最好使用位图,我会告诉你为什么。任何人和他们的兄弟都可以编辑图标。

我希望我的应用程序风格与一些图形元素。图标和其他思考

从性能和最佳实践的角度来看,使用vektor图形(XAML)或将我的图形转换为PNG更好吗

为什么


我知道矢量图形是可缩放的。。。这只是基于xaml的大型应用程序的性能问题。

您必须权衡自己的需求。如果仅仅是性能,那么我会说这取决于图像的数量。如果它们是一个大数字,那么XAML的性能确实会更高,否则就可以忽略不计

但我必须说的是纯粹的可维护性,特别是因为你在谈论图标之类的东西,你最好使用位图,我会告诉你为什么。任何人和他们的兄弟都可以编辑图标。对于矢量图形,你不能这么说。如果您想在某个时候替换图标,只需替换图像即可。您不必经历创建和/或查找矢量图像,然后(很可能)通过导出过滤器将其转换为XAML的麻烦。此外,有数以百万计的CC许可图标以位图的形式出现,您可以使用这些图标来获取更多的属性

是的,位图有时会有一些麻烦(比如处理实际宽度/实际高度的一些怪癖),但在我看来,这些都是次要的


补充:微软公司的罗依伦在2008年表示。随着2009年版本3的发布,Silverlight利用了GPU的优势,如果您启用它以及同时使用BitmapCache,它可以使矢量更快。因此,从纯性能的角度来看,理论上来说,向量速度更快。

XAML比PNG的优势:

  • 缩放-XAML图形由向量组成,因此可以缩放。超过因子2的缩放可能会导致问题(缩小时舍入错误,放大时细节太少)
  • 动态着色/动画-您可以使用动画轻松操纵图形中的颜色和点,甚至曲线 PNG相对于XAML的优势:

  • 加载/缓存速度-PNG可以缓存在GPU上。磁盘上的字节数不得超过每像素4位(+部分开销)
  • 像素完美-设计师绘制的内容显示在应用程序中。使用向量时,这要困难得多

  • 您可以根据您的需求以及性能、负载和文件大小的度量来选择。重复问题:另一个问题仅适用于WPF,而且没有太多有用的答案