WPF图像 vs. XAML

5
什么时候应该在应用程序中使用图片(jpg,png),什么时候应该使用XAML?
图片:
+ "easy" for the designer to create what he wants
+ are displayed the same on every computer
- fixed resolution

XAML

+ vector format (resolution independent, resize able, ...)
+ can be animated
+/- rendered by the client
- not as many effects available as for images or are really complex to create
- complex visual tree

我没有找到任何比较图像和XAML之间资源使用(CPU,RAM)的来源。

我个人认为所有东西都应该是XAML,但我不想拥有一个非常慢的应用程序。是否有任何关于使用XAML绘图的良好性能指南?


通过研究,我读到说您应该将所有内容放在XAML中,然后使用RenderTargetBitmap按需创建静态图像,但根据这篇文章,这将导致窗口在没有硬件加速的情况下被渲染。因此,我想知道它是否真的可以提高性能。无视它对编码者来说需要更多的工作这一事实。


如果你使用的是现代硬件,我就不用担心了。XAML甚至可能更快,因为你的磁盘IO更少。 - Wouter Simons
我不明白图片怎么能替代XAML。图片是静态的且不可交互的... - Daniel Hilgarth
我想他在谈论图标、按钮,特别是在它们不可交互的情况下。CPU/RAM资源消耗取决于具体的上下文。 正如您之前所指定的,两者都有优点和缺点...如果你只关注资源消耗,我同意Wouter Simons的看法 :) - metalcam
我使用的是现代硬件,但我不知道所有将使用该程序的用户的情况。你所说的现代硬件是指2GHz单核和1GB内存,还是2.3GHz四核和8GB内存?至于另一个问题:当然,我只是在讨论像metalcam建议的那样图像和XAML可以互换的情况。 - Leonard Brünings
2个回答

5

根据您的评论:

我只是在谈论图像和xaml可以互换的情况

使用PNG格式,仅当您实际需要其提供的优势时才使用基于Xaml的图像。可能有一些特殊情况的例外,例如,可以从几个简单路径组成大型图像的情况下使用Xaml。但是您必须有充分的理由相信任何性能差异是可感知并值得消除的。最终,在两者都可以实现相同结果时,优先选择简单而非复杂。


2
你本可以删掉整个回答,只留最后一句话,这样也能得到+1。 - Wonko the Sane

0

如果您的艺术家/设计师能够创建矢量图形且没有复杂的渐变,那么我更喜欢矢量图形。您将获得所有优点而没有任何缺点。

如果您担心复杂的可视化树,则WPF专门为这些情况提供了位图缓存。


顺便说一下,Expression Blend可以导入Adobe Illustrator文件,这意味着您的图形设计师可以在熟悉的程序中创建矢量图形,然后使用XAML路径进行渲染。它还负责导入刷子的渐变。 - Dan Bryant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接