内容简介:最近看到有小伙伴说 WPF 使用硬件渲染,如何让 WPF 不使用硬件渲染,因为他觉得性能太好了。万一这个版本发布了,产品经理说下个版本要提升性能就不好了。于是就找到一个快速的方法,让程序不使用硬件渲染这样下个版本要优化就让程序使用硬件渲染。设置 WPF 使用软件渲染的方法是在 .net framework 3.5 之后才可以的。使用方法很简单,在 Loaded 之后,添加下面代码默认的 RenderMode 是 默认,也就是如果判断有硬件就在硬件渲染,如果没有就在 CPU 渲染。
最近看到有小伙伴说 WPF 使用硬件渲染,如何让 WPF 不使用硬件渲染,因为他觉得性能太好了。万一这个版本发布了,产品经理说下个版本要提升性能就不好了。于是就找到一个快速的方法,让程序不使用硬件渲染这样下个版本要优化就让程序使用硬件渲染。
设置 WPF 使用软件渲染的方法是在 .net framework 3.5 之后才可以的。使用方法很简单,在 Loaded 之后,添加下面代码
HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource; HwndTarget hwndTarget = hwndSource.CompositionTarget; hwndTarget.RenderMode = RenderMode.SoftwareOnly;
默认的 RenderMode 是 默认,也就是如果判断有硬件就在硬件渲染,如果没有就在 CPU 渲染。
如果设置 SoftwareOnly 就不在硬件渲染。
除了想降低性能,估计没有人会设置这个。
上面的方法是开启窗口级的软渲染,如果想要在进程级设置开启软渲染,请使用这个代码
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
如果想要在整个设备运行 WPF 程序都使用软渲染,那么可以通过修改注册表的方法
在 HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics 里面添加一个项,这个项是 dword 命名是 DisableHWAcceleration 使用默认值 0 就可以
那么如何判断当前的软件是使用软渲染的?
通过 WPF Performance Suite 运行之后附加到打开的进程调试,勾选 Draw software renderingwith purple tint 观察原有进程是否被一个诡异的颜色放在上面,如果是那么就是开启软渲染了
在 Performance Profiling Tools for WPF 的 Draw software renderingwith purple tint 就是使用高亮的矩形覆盖在使用软渲染的范围,如果整个进程都是使用软渲染,那么整个进程都会被高亮
注意,除了设置使用软渲染之外打开高亮矩形可能会显示在使用 bitmap effects 的元素上或通过RenderTargetBitmap渲染的内容等使用软渲染的元素
现在微软已经不开放 Performance Profiling Tools for WPF 下载,请点击这个 链接 下载
最近在做渲染优化,更多博客请看 渲染相关
Video Rendering Issues for WPF Windows - Rick Strahl’s Web Log
以上所述就是小编给大家介绍的《WPF 设置纯软件渲染》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
UML基础、案例与应用
施穆勒 / 李虎、赵龙刚 / 人民邮电出版社 / 2004-7-1 / 42.00元
本书教读者循序渐进地、系统地学习UML基础知识和应用技术。和前一版相比,本书内容根据UML 2.0进行了补充和更新,随书光盘包含了建模工具Poseidon的试用版。 全书分为三部分24章。第一部分“基础知识”包括第1章到第15章,主要是介绍UML语言的基础知识以及面向对象的概念和思想,还简单介绍了UML在开发过程的应用方法。第二部分“学习案例”包括第16章到第22章,结合实例详细分析了UML的应用......一起来看看 《UML基础、案例与应用》 这本书的介绍吧!