Получить и установить разрешение экрана - PullRequest
60 голосов
/ 22 февраля 2011

Как собрать и изменить разрешение экрана с помощью Visual C #?

Ответы [ 6 ]

82 голосов
/ 22 февраля 2011

Для получения разрешения экрана вы захотите использовать класс System.Windows.Forms.Screen. Свойство Screen.AllScreens можно использовать для доступа к коллекции всех дисплеев в системе, или вы можете использовать свойство Screen.PrimaryScreen для доступа к основному дисплею.

Класс Screen имеет свойство с именем Bounds, которое можно использовать для определения разрешения текущего экземпляра класса. Например, чтобы определить разрешение текущего экрана:

Rectangle resolution = Screen.PrimaryScreen.Bounds;

Для изменения разрешения все становится немного сложнее. Эта статья (или эта ) содержит подробное описание и пояснение. Надеюсь, это поможет.

10 голосов
/ 27 декабря 2015

В C # это как получить разрешение экрана:

нажатие кнопки или загрузка формы:

string screenWidth = Screen.PrimaryScreen.Bounds.Width.ToString();
string screenHeight = Screen.PrimaryScreen.Bounds.Height.ToString();
Label1.Text = ("Resolution: " + screenWidth + "x" + screenHeight);
4 голосов
/ 04 августа 2017

Этот код будет отлично работать в WPF.Вы можете использовать его либо при загрузке страницы, либо при нажатии кнопки.

      string screenWidth =System.Windows.SystemParameters.PrimaryScreenWidth.ToString();

      string screenHeight = System.Windows.SystemParameters.PrimaryScreenHeight.ToString();

      txtResolution.Text ="Resolution : "+screenWidth + " X " + screenHeight;
1 голос
/ 22 февраля 2011

в Winforms есть класс Screen, который вы можете использовать для получения данных о размерах экрана и глубине цвета для всех дисплеев, подключенных к компьютеру.Вот страница документации: http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.aspx

ИЗМЕНЕНИЕ разрешения экрана сложнее.Существует сторонний класс Resolution, который оборачивает нативный код, в который вы могли бы зацепиться.Используйте его вложенный класс CResolution для установки разрешения экрана на новую высоту и ширину;но поймите, что это будет работать только для тех комбинаций высоты / ширины, которые фактически поддерживает дисплей (800x600, 1024x768 и т. д., а не 817x435).

0 голосов
/ 24 июня 2019

Я потратил много времени, пытаясь выяснить это, для устройств с коэффициентом масштабирования очень трудно получить фактический размер экрана из-за коэффициента масштабирования, иногда 125% или 150%, когда звонки выполняются В объектах C # возвращаемое значение сейчас не является правильным, поэтому вам нужно выполнить вызов API Windows, чтобы получить коэффициент масштабирования и применить множитель, единственный способ, который я нашел для приложений, не являющихся WPF, - это здесь

https://stackoverflow.com/a/21450169

0 голосов
/ 22 февраля 2011

Если вы хотите получить разрешение экрана, вы можете запустить следующий код в окне WPF (это то, на что ссылается this):

System.Windows.Media.Matrix m = PresentationSource.FromVisual(this).CompositionTarget.TransformToDevice;
Double dpiX = m.M11 * 96;
Double dpiY = m.M22 * 96;
...