加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 21:32:05 所属栏目: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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读