更改windows dpi设置C#

我正面临一个与windows的dpi设置有关的问题。 如果windows dpi设置为100%,一切都很好。 但如果用户将其更改为125%…我的应用程序的某些部分显示错误的大小。 我知道问题并且我知道如何处理但是我的客户想要在应用程序运行时,如果当前dpi设置的窗口不等于100% – >将其更改为100%

我现在仍然坚持解决方案。 你有改变windows dpi设置值的解决方案吗?

提前致谢!!!

您可以通过修改注册表项HKEY_CURRENT_USER\Control Panel\Desktop:LogPixels的注册表值来执行此HKEY_CURRENT_USER\Control Panel\Desktop:LogPixels 。 类型是REG_DWORD

您可以在此处查看注册表方法,以帮助您修改注册表值。

将值设置为96(0x60)对应将DPI设置设置为“较小”(100%)。

  • 96是“小”(100%),
  • 120是“中等”(125%),
  • 144是“更大”(150%)。

请注意,计算机可能仍需要重新启动或注销/登录才能使所有设置按预期工作。

你必须在你的应用程序中使用ViewBox。

它只是缩放以使内容适合可用的大小。 它不会调整内容的大小,但会对其进行转换。 这意味着还缩放了所有文本大小和行宽。 它与将图像或路径上的Stretch属性设置为Uniform的行为大致相同。

例如