更改windows dpi设置C#

时间:2014-05-27 09:40:15

标签: c# wpf dpi

我遇到了与windows的dpi设置有关的问题。如果windows dpi设置为100%,一切都很好。但如果用户将其更改为125%...我的应用程序的某些部分显示错误的大小。我知道问题,我知道如何处理,但我的客户希望在应用程序运行时,如果当前的窗口dpi设置不等于100% - >将其更改为100%

我对解决方案保持不变。你有改变windows dpi设置值的解决方案吗?

先谢谢!!!

2 个答案:

答案 0 :(得分:2)

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

您可以看到注册表方法here,以帮助修改注册表值。

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

  • 96"更小" (100%),
  • 120" Medium" (125%),
  • 144是"更大" (150%)。

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

答案 1 :(得分:0)

您必须在应用程序中使用ViewBox。

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

for eample

  <Viewbox Stretch="Uniform">
      <Button Content="Test" />
    </Viewbox>