为什么WPF在不同版本的Windows上呈现不同?

我读到 WPF使用DirectX来执行其渲染,它不依赖于WinForms用于渲染控件的恐龙库. 所以我使用WPF创建了我的表示层,它看起来应该在Win8下. 然后我将项目部署到Windows Server 2003 …以发现我漂亮的小自定义消息框看起来非常像WinForms,有点笨重;按钮控件非常类似

我读到
WPF使用DirectX来执行其渲染,它不依赖于WinForms用于渲染控件的恐龙库.

所以我使用WPF创建了我的表示层,它看起来应该在Win8下.

然后我将项目部署到Windows Server 2003 …以发现我漂亮的小自定义消息框看起来非常像WinForms,有点笨重;按钮控件非常类似于WinForms控件,扩展器控件不再显示为带圆圈的^箭头,看起来像是在1998年绘制的(图片中的^箭头在一个丑陋的方形平面按钮上,当你的鼠标悬停在它上面时弹出它).

来自C#2010圣经中的Pro WPF:

Part of the promise of WPF is that you don’t need to worry about the details and idiosyncrasies of specific hardware. WPF is intelligent enough to use hardware optimizations where possible,but it has a software fallback for everything. So if you run a WPF application on a computer with a legacy video card,the interface will still appear the way you designed it.

那么,这是谎言吗?对我而言,因为它不像我设计的那样出现.

如果没有,那么无论运行它的机器如何,为什么/如何渲染相同的东西呢?软件回退是否以某种方式设计为模仿Win32 / GDI渲染?有没有办法让我的小自定义消息框在Win8和WinServer2K3上看起来相同?

这与DirectX / Rendering /显卡/其中任何一个都没有关系.

和WPF一起从Windows主题中获取所有UI元素的DEFAULT外观.

如果您不想要这种行为,则必须为所有UI元素类型提供样式和模板,或者在应用程序中找到一种方法将PresentationFramework.Aero.dll包含在内,并将其用作默认主题库.

看看this answer

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部