Member 14521880 Ответов: 3

Как соответствовать любому разрешению экрана ( маленькому / большому ) в приложении windows C#, пожалуйста, помогите


Я создаю форму Windows 1280×800, работающую хорошо .
Но если я устанавливаю свое приложение на другой компьютер (клиент), то разрешение экрана не отображается правильно .. многие элементы управления вырезаны .

[Помощь]

Любые предложения .. каков лучший размер разрешения экрана ?

Что я уже пробовал:

Any suggestions .. what's best screen resolution size ?

3 Ответов

Рейтинг:
2

#realJSOP

В WPF добавьте эти атрибуты к элементу окна:

WindowStartupLocation="CenterScreen" WindowState="Maximized"

В WinForms поместите это в конструктор после вызова InitializeComponent()

this.WindowState = FormWindowState.Maximized;

Кстати, они легко обнаруживаются даже с помощью самых элементарных поисковых запросов google.


BillWoodruff

Я не думаю, что ОП здесь спрашивает, как вы полностью заполняете экран формой.

Рейтинг:
1

RickZeeland

Простой способ масштабирования Winform в C#:

// Scale form, AutoScaleMode.Font must be set for this to work.
this.Font = new Font(this.Font.Name, this.Font.Size + 2);
Обратите внимание, что это не будет работать для некоторых сложных элементов управления.
Также смотрите пример здесь: RoundedButton Control - Демистифицирующий DrawArc[^]


BillWoodruff

интересно, что это приведет к тому, что форма станет шире, выше; однако тот факт, что это не будет хорошо играть с ContainerControls, наиболее полезными для создания плотно спроектированных изменяемых форм, исключает это ... для меня. Мне придется пойти посмотреть, что происходит с 'управления flowlayoutpanel.

Рейтинг:
1

BillWoodruff

Пожалуйста, уточните, идет ли речь о WinForms.

Нет никакой "волшебной пули", которая гарантировала бы вашу форму, и элементы управления в ней, будут выглядеть одинаково на каждом типе устройства независимо от размера экрана и разрешения.

WPF, в котором все элементы пользовательского интерфейса основаны на векторах, будет, в теории, дать вам форму, которая выглядит одинаково в любом масштабе.

На практике шрифты, даже если они основаны на векторах, внутренне "намекаются": при рендеринге определенных размеров они будут выглядеть немного иначе. Это делается для удобства чтения при "стандартных" размерах (менее 14~18 точек), которые большинство приложений используют для текста.

... в WinForms

Используйте установку параметров Form MinimumSize и MaximumSize Prop(rties) для ограничения размеров, до которых пользователь может изменить размер формы прямым действием (перетаскиванием) во время выполнения.

В WinForms главное, что вы можете сделать, - это тщательно использовать ContainerControls с заданными свойствами стыковки, а для элементов управления внутри этих ContainerControls используйте свойства Dock или Anchor для управления тем, что происходит при изменении размера формы.

Для ContainerControls вы можете повлиять внутренний внешний вид (видимое поле) путем установки свойства Padding; при незакрепленных элементах управления установка свойства Margin может влиять на их пространственное отношение-к другим элементам управления или их разделение-от других элементов управления.

Вы можете поэкспериментировать со свойствами WinForm AutoScale, AutoScaleMode и Autosize, а также StartPosition.

Конечно, вы также можете установить WindowState: я рекомендую вам использовать WindowState.Maximized только тогда, когда вы уверен, что вы хотите заполнить весь экран пользователя Вы действительно хотите скрыть все панели инструментов, которые пользователь установил, чтобы оставаться открытыми ?

Наконец, TableLayoutPanel и FlowLayoutPanel - это сложные и мощные макеты ContainerControls ]: потребуется некоторое усилие, чтобы научиться их использовать. имхо, вполне стоит вложить деньги в обучение их использованию.