Outlook VSTO具有新的Office High DPI支持

Sør*_*sen 9 vsto winforms outlook-addin

我们有一个用C#编写并使用Windows窗体的Office VSTO加载项.

在最近的Office更新之前,加载项呈现得很好.但在微软推出Office支持高清显示器之后,许多表单在Outlook 2016(MSO/Office 365)中开始呈现空白.

我可以通过在Outlook底部状态栏的"显示设置"中选择"优化兼容性"来解决Outlook中的问题: 显示设置弹出窗口

但是,如果每个用户都必须手动执行此操作,这对我们的客户来说不是一个可行的解决方案.所以我有两个问题:

  1. Windows注册表中的这个设置位于何处以及我需要写什么值才能激活"Optimize for compatibility"模式?
  2. 如何使用新的"Optimize for best appearance"模式使WinForms加载项工作?

更新

我发现禁用转换以一种形式修复了问题,其中控件在删除转换后开始出现.但是,即使在删除所有转换后,我们最重要的表单仍然呈现空白.

我还尝试将项目升级到.NET 4.7并为Windows Forms 启用新的高DPI支持.但这也没有解决问题.

Sør*_*sen 6

我现在可以自己回答问题1:Outlook 2016 MSO将设置存储在

HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Options
Run Code Online (Sandbox Code Playgroud)

名为"RenderForMonitorDpi".如果将其设置为1,则该选项设置为"优化以获得最佳外观".如果设置为0,则将其设置为"Optimize for compatibility".