Рекомендации Windows UX говорят о том, что в диалоге необходимо использовать отступ 7 DLU.
Диалоговая единица (DLU) основана на среднем размере символа. Он определен так, что «средний» символ имеет ширину 4 DLU и высоту 8 DLU.
Размер среднего символа изменяется в зависимости от шрифта, размера шрифта и точек на дюйм, которые в данный момент использует пользователь. Это означает, что 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)
Таким образом, если пользователь запускает Segoe UI 9pt с разрешением 96 т / д (по умолчанию в Windows Vista и 7), вам нужно верхнее и нижнее поле 13px, а левое и правое поле 12px.
Если пользователь запускает Tahoma 9pt с разрешением 96 точек на дюйм (по умолчанию в 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 9pt, 120 точек на дюйм (по умолчанию большие шрифты в Windows Vista, по умолчанию Windows 7 с высоким разрешением)
- Segoe UI 11pt, 96 dpi (что я запускаю на работе)
- Segoe UI 9pt, 137 dpi (что я запускаю дома)
И именно поэтому создание пользовательских интерфейсов сложно. Трудно сделать это правильно, и большинство разработчиков предпочли бы просто сунуть голову в песок и притвориться, что у пользователей нет предпочтений в шрифтах, или изменить настройку dpi.
И тот факт, что вопрос был задан 4 месяца назад, а затем оставлен, похоже, подтверждает, что разработчики не хотят слышать жесткие ответы.