Pet*_*der 16 wpf xaml winforms
由于XAML被编译,因此执行代码应该没有区别.
Winforms(代码如下):
Form formPeter = new Form();
Textbox textbox = new Textbox();
Label l1 = new Label1();
Run Code Online (Sandbox Code Playgroud)
Xaml在运行时没有被解析,因为我认为... :-)
但是如何使用大量控件渲染/执行大型表单呢?哪种技术更快?
小智 21
哪种技术更快?我担心你的问题没有一个简单的答案.
您在运行时未解析XAML的评论既是真的也是假的.虽然XAML不会被解析它的标准化二进制版本(如内嵌在应用程序中的资源)呼吁BAML 是在运行时解析.要说DirectX比GDI更快也是一种简化 - 基于WPF和GDI的渲染技术只具有不同的性能特征.例如,WPF使用保留的渲染模式,而WinForms和其他基于GDI的技术则不使用.WPF对象的重量往往更重,因为它们比winforms对象支持更多的属性.我们有几十年的知识,如何使GDI变得非常快,而且只有相对较短的时间使用WPF和XAML.
WPF对于编写应用程序来说足够快,但是你需要时刻保持警惕,你的元素数量不会爆炸(例如,通过创建过于复杂的模板,然后在UI中重复数百或数千次).此外,WPF在不同的图形硬件上执行不同的操作(因为它在内部调用DirectX).在WPF中2D内容应该没问题,即使它完全用软件渲染(比如它在虚拟机上的渲染方式),但是带有大量元素的动画,抗锯齿3D需要真正的GPU能力.随着时间的推移,图形硬件变得越来越强大和流行,并且关于如何改进性能调整WPF的知识得到改进,我们应该看到WPF进一步提前(假设它现在稍微如此......对于某些场景......有时候).所以我猜答案是"它取决于".
| 归档时间: |
|
| 查看次数: |
14273 次 |
| 最近记录: |