我使用ChromiumFX在WPF应用程序中呈现一些WPF内容。但是,内容似乎被呈现了两倍,如下面的截图所示。越大的一个是预期的大小,它的功能正确,而较小的一个不响应任何鼠标操作。较小的一张只是一张静态的图片。
注意,我们已经在Win8 7/Win8 8/Win8 10上测试了不同屏幕大小和分辨率的x86/x64机器上的完全相同的应用程序。除了Surface 3/4 + Win10之外,一切都很好。它还工作在Surface 1+ Win8上。
我猜Chromium内核正在使用本地Windows来呈现场景背后的内容。因此,与Surface硬件、OS和Chromium内核可能存在一些不兼容的问题。但老实说,我不知道该从哪里开始研究。你们能给我个提示吗?提前感谢!
详细版本信息:

发布于 2016-06-05 03:19:11
2016-7-11最新情况
经过进一步的测试,原来的解决方案似乎不是最好的。如果另一个监视器连接到PC并将应用程序窗口移到那里,则再次发生此问题。
因此,最终的解决方案应该是将app.manifest添加到应用程序中,并启用dpiAware属性。
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
终于成功了。所以我会给出答案,以防有人遇到同样的问题。
实际上,这个问题不仅发生在Win10 + Surface中。使用win10的所有设备都会出现这种情况。一旦用户更改了默认DPI设置,就会出现问题。
该领域中的应用程序的解决方法是为您的应用程序使用禁用高dpi设置上的显示缩放。
为了一劳永逸地解决这个问题,您可能需要在安装过程中为应用程序添加一个注册表项,如下所示:
Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"
<RegistryValue Type="string" Name="APPLICATIONROOTDIRECTORY]ApplicationName.exe" Value="~ HIGHDPIAWARE" />注意,如果您使用分离的进程来呈现,请将上述值设置为CfxSettings.BrowserSubprocessPath的值。
https://stackoverflow.com/questions/35421852
复制相似问题