默认对话框填充

Cor*_*nel 2 winforms

对话框填充的默认值应该是什么?8px 10px?

Ian*_*oyd 6

Windows UX准则告诉您在对话框中一直使用7 DLU填充.


  • 对话单元(DLU)基于角色的平均大小.它被定义为"平均"字符是4个DLU宽,8个DLU高.

  • 平均字符的大小根据用户当前运行的字体,字体大小和dpi而变化.这意味着DLU在计算机之间或同一台计算机上的用户之间不是常量.

  • 不同的字体具有不同的宽高比.这最终意味着DLU的像素大小在水平和垂直方向上将是不同的.


看看这个特定的大小(7 dlus的对话框填充):

         Segoe UI 9pt, 96dpi    Tahoma 8pt, 96dpi
dlus      px      py              px      py
==================================================
1x1      1.75    1.875            1.250   1.625
4x8      7      15                6      13        Definition of DLU: Average character=4x8
7x7     12.25   13.125            8.75   11.375    Dialog box margin - all sides (7)
Run Code Online (Sandbox Code Playgroud)

因此,如果用户以96 dpi(Windows Vista和7默认值)运行Segoe UI 9pt,则需要13px的上下边距,以及12px的左右边距.

如果用户以96dpi运行Tahoma 9pt(Windows 2000和XP默认值),则需要11px的上下边距以及9px的左右边距.

其他常见尺寸:

  • MS Sans Serif,8pt,96dpi(默认Windows 9x)
  • Tahoma 8pt,96dpi(Windows 2000/XP默认)
  • Tahoma 8pt,120dpi(Windows 2000/XP大字体)
  • Segoe UI 9pt,96dpi(Windows Vista/7默认)
  • Segoe UI 9pt,120 dpi(Windows Vista大字体默认,Windows 7高dpi默认)
  • Segoe UI 11pt,96 dpi(我在工作中运行)
  • Segoe UI 9pt,137 dpi(我在家里跑的是什么)

这就是创建用户界面很难的原因.很难做到这一点,并且大多数开发人员宁愿只是坚持下去,假装用户没有字体偏好,或者改变他们的dpi设置.

这个问题在4个月前被问到然后被放弃的事实似乎证实了开发人员不想听到难以回答的问题.