我正在使用使用 Web 浏览器控件的 WPF 应用程序,并且在高 DPI 缩放方面遇到问题。
看起来 Web 浏览器控件没有正确遵守系统的 DPI 设置,而 WPF 应用程序的其余部分则正确缩放 UI。这意味着在更高的比例级别上,WPF 界面会变得更大,而 Web 浏览器内容仍保持原来的、现在看起来更小的尺寸。
下面是使用两个 Web 浏览器控件的 WPF 应用程序的屏幕截图示例。
100% 缩放:
150% 缩放:
请注意,在第二张图片中,相对于主表单内容(工具栏/菜单/状态栏),Web 浏览器缩放比例比第一张图片中的小得多。
是否有某种方法可以强制 Web 浏览器控件正确使用从应用程序继承的高 DPI 设置?
这个MSDN链接:解决 DPI 问题 https://msdn.microsoft.com/en-us/library/mt622670.aspx
显示了一种非常低级的方法(在文档的底部)实现自定义 Web 浏览器 COM 接口,但我想知道是否有更干净的方法来解决这个问题。
我找到了我认为实现所需功能的最佳方法(前提是您无论如何都需要指定FEATURE_BROWSER_EMULATION
在注册表中使用最新的 IE 版本).
您需要做的就是创建一个新密钥HKCU\Software\Microsoft\Internet Explorer\Main\FeatureControl
named FEATURE_96DPI_PIXEL
并在其中添加您的可执行条目类型DWORD (32-bit)
,以应用程序 exe 作为键名和值1
.
在实际实例化 WebBrowser 组件之前检查应用程序启动时的设置,应该没问题。
原始帖子(具有其他可能的功能):https://www.reddit.com/r/dotnet/comments/2j5m6m/wpf_webbrowser_control_alternatives/ https://www.reddit.com/r/dotnet/comments/2j5m6m/wpf_webbrowser_control_alternatives/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)