Практическое руководство. Поддержка изменений ориентации и разрешения экрана
Обновлен: Ноябрь 2007
В следующей таблице представлены ориентации экрана, поддерживаемые платформой .NET Compact Framework. Размеры представлены в точках, ширина на высоту.
Ориентация экрана |
Стандартные размеры для экрана размером 96 точек на дюйм |
Стандартные размеры для экрана размером 192 точки на дюйм (Высокое разрешение) |
---|---|---|
Книжная ориентация — карманные ПК Книжная ориентация — смартфоны |
240 x 320 176 x 220 и 240 x 320 |
480 x 640 352 x 440 и 480 x 640 |
Альбомная ориентация — только для карманных ПК |
320 x 240 |
640 x 480 |
Квадратная ориентация — только для карманных ПК |
240 x 240 |
480 x 480 |
Можно использовать привязку и закрепление, чтобы автоматически изменять размеры элементов управления таким образом, что содержимое формы подстраивается под разные ориентации экрана. Привязка позволяет поддерживать заданное расстояние от края, а закрепление позволяет размещать содержимое по краю родительского контейнера.
Свойство Anchor элемента управления определяет изменение его размеров, если размер содержащего его элемента управления или формы изменяется. Свойство Dock элемента управления, которое определяет, каких краев содержащего его элемента необходимо придерживаться.
Привязка и закрепление в .NET Compact Framework обладают тем же поведением, что и в полной версии .NET Framework.
Можно настроить приложение таким образом, чтобы адаптироваться к различным разрешениям экрана.
Обработка изменения ориентации экрана
Можно разместить элементы управления, которые должны располагаться в определенной области формы в контейнерном элементе управления, например, Panel, и присвоить свойству Dock элемента управления Panel значение, соответствующее требуемому краю.
Чтобы сохранить нужный размер и расположение элемента управления в соответствии с боковыми сторонами его формы, необходимо присвоить свойству Anchor на элементах управления значения, соответствующие требуемому расположению.
Например, чтобы кнопка всегда отображалась в нижнем правом углу и сохраняла свой размер, следует использовать следующее выражение:
Me.Button1.Anchor = AnchorStyles.Bottom Or AnchorStyles.Right
this.button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
В среде Microsoft Visual Studio 2005 можно задать параметры привязки и закрепления в панели Свойства.
Изменение ориентации экрана
Если на используемом карманном ПК установлена ОС Windows Mobile версии 5.0, можно изменить ориентацию экрана от книжной (0 градусов) до 90, 180 и 270 градусов, как указано в перечислении ScreenOrientation. Например, следующий оператор устанавливает альбомную ориентацию:
SystemSettings.ScreenOrientation = ScreenOrientation.Angle270
SystemSettings.ScreenOrientation = ScreenOrientation.Angle270;
Необходимо учитывать, что ориентация экрана изменяет устройство, не только приложение. Поэтому желательно вернуть прежнюю ориентацию в коде обработчика событий FormClosing.
Обработка изменения разрешения экрана
При создании проекта для интеллектуальных устройств в среде Microsoft Visual Studio 2005, конструктор предоставляет код для автоматического изменения размера элементов управления в соответствии с разрешением экрана устройства. В противном случае, если приложение запускается на устройстве с другим разрешением, нежели на устройстве, использованном при разработке, форма будет слишком большой или слишком маленькой. Следовательно, размеры элементов управления на форме необходимо изменять соответствующим образом.
При создании проекта для интеллектуальных устройств в среде Visual Studio 2005, конструктор добавляет следующие операторы в метод InitializeComponent:
[Visual Basic]
Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi
[C#]
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
Эти операторы показывают, что приложение разрабатывается для устройства с разрешением 96 точек на дюйм и что автоматическое масштабирование производится с помощью режима DPI. Необходимо учитывать, что значение 96 точек на дюйм — это значение по умолчанию, полученное от настольного компьютера, на котором запущена среда Visual Studio 2005. Конструктор создает этот код автоматически, и все элементы управления на форме будут масштабироваться автоматически в соответствии с различным разрешением экрана.
Если приложение содержит графические элементы, нарисованные с помощью метода OnPaint, они не будут масштабироваться автоматически. Для определения соответствующего масштабирования следует использовать свойства DpiX и DpiY объектов Graphics. В разделе Пример Rotated Text Using LogFont приведен пример ручного масштабирования.
См. также
Задачи
Практическое руководство. Выравнивание элементов управления по границам формы
Основные понятия
Автоматическое масштабирование в Windows Forms
Другие ресурсы
Элементы управления Windows Forms, используемые в платформе .NET Compact Framework