Как я могу собирать и изменять разрешение экрана с помощью Visual С#?
Получить и установить разрешение экрана
Ответ 1
Для получения разрешения экрана вы захотите использовать класс System.Windows.Forms.Screen
. Свойство Screen.AllScreens
может использоваться для доступа к коллекции всех дисплеев в системе или вы можете использовать Screen.PrimaryScreen
для доступа к основному дисплею.
Класс Screen
имеет свойство Bounds
, которое можно использовать для определения разрешения текущего экземпляра класса, Например, чтобы определить разрешение текущего экрана:
Rectangle resolution = Screen.PrimaryScreen.Bounds;
Для изменения разрешения все становится немного сложнее. Эта статья (или этот) предоставляет подробную реализацию и объяснение. Надеюсь, это поможет.
Ответ 2
В С# это как получить разрешение экрана:
нажмите кнопку или заполните форму:
string screenWidth = Screen.PrimaryScreen.Bounds.Width.ToString();
string screenHeight = Screen.PrimaryScreen.Bounds.Height.ToString();
Label1.Text = ("Resolution: " + screenWidth + "x" + screenHeight);
Ответ 3
Этот код отлично работает в WPF. Вы можете использовать его либо при загрузке страницы, либо при нажатии кнопки.
string screenWidth =System.Windows.SystemParameters.PrimaryScreenWidth.ToString();
string screenHeight = System.Windows.SystemParameters.PrimaryScreenHeight.ToString();
txtResolution.Text ="Resolution : "+screenWidth + " X " + screenHeight;
Ответ 4
в Winforms существует класс Screen, который вы можете использовать для получения данных о размерах экрана и глубине цвета для всех дисплеев, подключенных к компьютеру. Здесь страница документов: http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.aspx
ИЗМЕНЕНИЕ разрешения экрана сложнее. Существует сторонний класс разрешения, который обертывает собственный код, к которому вы в противном случае подключали бы. Используйте свой вложенный класс CResolution для установки разрешения экрана на новую высоту и ширину; но понимайте, что это будет работать только для комбинаций высоты и ширины, которые фактически поддерживает дисплей (800x600, 1024x768 и т.д., а не 817x435).
Ответ 5
Если вы хотите получить разрешение экрана, вы можете запустить следующий код в окне WPF (в окне будет указано this
):
System.Windows.Media.Matrix m = PresentationSource.FromVisual(this).CompositionTarget.TransformToDevice;
Double dpiX = m.M11 * 96;
Double dpiY = m.M22 * 96;
Ответ 6
Я потратил много времени, пытаясь выяснить это, для устройств с коэффициентом масштабирования очень трудно получить фактический размер экрана из-за коэффициента масштабирования, иногда 125% или 150%, когда вызовы выполняются для объектов С# возвращаемое значение не является правильным сейчас, поэтому вам нужно сделать вызов Windows API, чтобы получить коэффициент масштабирования и применить множитель, единственный способ, который я нашел для не WPF-приложений, здесь