Windows窗体DPI缩放

时间:2014-09-27 10:20:08

标签: c# winforms dpi

enter image description here

我的应用程序在100%DPI设置下看起来不错,但是当用户选择不同的(125%或150%)单词时,不适合容器。我尝试使用我在此处找到的解决方案解决此问题:Detect windows font size (100%, 125%, 150%)即:

this.AutoScaleMode = AutoScaleMode.Dpi;

它固定了150%的设置(使它有点模糊,但没关系),不幸的是它并没有使用在应用程序打算运行的PC上使用的125%。

对此有一些简单的解决方法,还是我必须手动重新排列每个表单?

1 个答案:

答案 0 :(得分:8)

Creating a DPI-Aware Application

所有容器必须使用相同的AutoScaleMode - 这部分修复了我的问题

  

要求Windows应用程序在不同分辨率下应具有相同的布局,这意味着在更改分辨率时应用程序的布局应该没有任何影响。以下是执行此操作的步骤。

     
      
  1. 使用表格布局面板
  2.   
  3. 在tablelayoutpanel的单元格中拖动控件并设置锚点和停靠属性。
  4.   
  5. 设置拖动控件的rowspan和colspan属性以合并单元格
  6.   
  7. 设置相对于单元格的拖动控件的边距和填充。
  8.   
  9. 拖动所有控件并按照相同步骤操作,使用tablelayoutpanel完成设计
  10.   
  11. 现在设置tablelayoutpanel = autosize(或%)
  12. 的所有列和行大小   
  13. 设置tablelayoutpanel属性autosize = true,autosizemode = grow and shrink
  14.   
  15. 设置表单属性autosize = true,autosizemode = grow and shrink
  16.   
  17. 运行Windows应用程序如果您的Windows应用程序以最大状态打开,请设置tablelayoutpanel dock property = fill。
  18.