在WPF中禁用硬件加速的步骤是什么?究竟是什么?它是一个Windows设置,一个视觉工作室设置还是你在wpf项目代码中改变的东西?它只会影响您正在运行的程序还是会影响整个系统?
答案 0 :(得分:32)
您可以从.Net 3.5 SP1开始在Window
级别禁用它。
public partial class MyWindow : Window
{
public MyWindow()
: base()
{
InitializeComponent();
}
protected override void OnSourceInitialized(EventArgs e)
{
var hwndSource = PresentationSource.FromVisual(this) as HwndSource;
if (hwndSource != null)
hwndSource.CompositionTarget.RenderMode = RenderMode.SoftwareOnly;
base.OnSourceInitialized(e);
}
}
或者您可以订阅窗口的SourceInitialized
事件并执行相同操作。
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
软件渲染的优先顺序是:
答案 1 :(得分:24)
这是一个机器范围的注册表设置。有关注册表项以及与自定义WPF呈现相关的其他详细信息,请参阅WPF文档中的Graphics Rendering Registry Settings。
列出的关键是:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration
对于.NET 4.5,MSDN文档“不可用”,因此这可能是仅在4.0或更低版本下工作的已删除选项。
答案 2 :(得分:16)
在4.0版中,您还可以使用RenderOptions.ProcessRenderMode
设置流程范围的首选项(http://msdn.microsoft.com/en-us/library/system.windows.media.renderoptions.processrendermode.aspx)。
答案 3 :(得分:-6)
这是一个系统范围的设置,从桌面,右键单击以显示弹出菜单,单击属性,并在那里查看视频设置以禁用硬件加速或可能有系统托盘图标图形设置。这是系统范围的,而不是本地的。
希望这有帮助, 最好的祝福, 汤姆。