BillWoodruff
Если ваше разрешение экрана такое же, как у вашего клиента, и вы оба используете мониторы с одинаковым стандартным соотношением сторон (как правило, сегодня 16:9 для настольных мониторов) ... у клиента не должно быть никаких проблем.
Добро пожаловать в Великую головоломку работы с различными размерами устройств отображения, разрешением экрана и соотношением сторон: [^].
Пример того, как это становится сложным: разрешение экрана, которое я использую ... из-за проблем со зрением мне нужно видеть вещи большими ... это 1360/768 (соотношение 683:384), которое не соответствует точно 16:9 или 16:10 ... или 4:3. Причины, по которым это разрешение стало часто использоваться несколько лет назад, заключались в эффективности производства, вычислительной эффективности, ограничениях 8-битных устройств памяти экрана и потребительском спросе на более широкие экраны, чем 1024/768.
Я предлагаю вам рассмотреть это как часть вашего дизайна приложения, чтобы исследовать возможное будущее использование вашего приложения на устройствах с различными форм-факторами и характеристиками экрана.
Имея дело с клиентом, я предлагаю вам сделать частью вашего договорного соглашения указание различных соотношений экранов мониторов, для которых предназначен пользовательский интерфейс, и возможность использования приложения, если монитор находится в "портретной", а не в "альбомной" ориентации.
Если вы используете WPF, у вас есть преимущество полностью векторного графического движка ... однако это не гарантирует, что ваше приложение будет выглядеть "идеально" при любом произвольном размере ! Графический движок Windows Forms GDI+ гораздо более ограничен.
В любом случае, шрифты меньшего размера, чем #14, всегда будут выглядеть лучше всего на определенных раздельный размеры; это потому, что они "намекаются" так, что корректировка пикселей производится для оптимизации читабельности экрана. Пытаться масштабировать шрифты-не очень хорошая идея. Таким образом, для шрифтов небольших размеров вам нужно определить эти дискретные размеры и "прыгать" между ними, а не масштабировать.
Обратите внимание, что происходит, когда в проекте WinForms вы выбираете форму и устанавливаете ее свойство шрифта в Consolas #10 ... в файле Designer. cs вы увидите следующее:
this.Font = new System.Drawing.Font("Consolas", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
Если бы вы выбрали Consolas #9, значение было бы #9; это значение #10.2 является результатом поиска Windows оптимального размера, при котором намек будет наиболее эффективным.
Я бы по крайней мере
рассматривать попытка сделать эффективный внешний вид пользовательского интерфейса на 1024x768, 1360x768 и 1920x1080.
И, конечно же, изучите и попробуйте другие идеи в решениях/комментариях, предложенных вам здесь OriginalGriff и Phillippe Mori !
Я предлагаю вам ознакомиться с этими различными областями / границами свойств приложения WinForm и формы:
private Rectangle
screenBounds,
screenWorkingArea,
formDesktopBounds,
formBounds,
formClient,
formDisplay;
private GetScreenFormInfo()
{
var priScreen = Screen.PrimaryScreen;
screenBounds = priScreen.Bounds;
screenWorkingArea = priScreen.WorkingArea;
formBounds = Bounds;
formDesktopBounds = DesktopBounds;
formClient = ClientRectangle;
formDisplay = DisplayRectangle;
}
BillWoodruff
Используйте пример кода, показанный в этом решении; поместите его в тестовый проект, запустите его. Вызовите метод
Теперь изучите значения различных полей прямоугольника.
Подумайте о том, что означают различия (или отсутствие различий) между этими ценностями, а затем начните планировать, как использовать это значение.
Имейте в виду, что общая проблема того, как заставить пользовательский интерфейс появляться в удобном для использования виде на разных разрешениях экрана ... сложна, и придется идти на компромиссы (как правило).