2011-02-22 5 views
47

Visual C#을 사용하여 화면 해상도를 어떻게 수집하고 변경할 수 있습니까?화면 해상도 가져 오기 및 설정

+5

[이 코드 프로젝트 문서 (http://www.codeproject.com/KB/cs/csdynamicscrres.aspx)를 보았습니까? – Justin

+0

@ Justin : SystemInformation.PrimaryMonitorSize를 믹스에 추가하고 대답으로 게시하십시오. –

답변

0

Winforms에는 컴퓨터에 연결된 모든 디스플레이의 화면 크기 및 색 농도에 대한 데이터를 가져 오는 데 사용할 수있는 Screen 클래스가 있습니다. 다음은 문서 페이지입니다. http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.aspx

화면 해상도를 변경하는 것이 더 까다 롭습니다. 다른 방법으로 연결하려는 원시 코드를 래핑하는 Resolution 제 3 자 클래스가 있습니다. CResolution 중첩 클래스를 사용하여 화면 해상도를 새로운 높이와 너비로 설정합니다. 하지만이 작업은 디스플레이가 실제로 지원하는 높이/너비 조합 (800x600, 1024x768 등, 817x435가 아닌)에서만 작동한다는 점을 이해해야합니다.

69

화면 해상도를 검색하는 경우 System.Windows.Forms.Screen 클래스를 사용하려고합니다. Screen.AllScreens 속성은 시스템의 모든 디스플레이 컬렉션에 액세스하는 데 사용하거나 Screen.PrimaryScreen 속성을 사용하여 기본 디스플레이에 액세스 할 수 있습니다.

Screen 클래스에는 Bounds이라는 속성이 있습니다.이 속성을 사용하면 클래스의 현재 인스턴스의 해상도를 확인할 수 있습니다. 예를 들어, 현재 화면의 해상도 결정 : 를 들어

Rectangle resolution = Screen.PrimaryScreen.Bounds; 

해상도를 변경을 상황이 좀 더 복잡해진다. This article (또는 this one)은 자세한 구현 및 설명을 제공합니다. 희망이 도움이됩니다.

+0

감사. 정말 쉽습니다. 이 명령으로 resolution.Height 및 resolution.Width 특성을 사용할 수 있습니다. –

+0

비 winforms 방법이 있나요? IE, .net 코어에서 작동하는 것이 있습니까? –

-1

당신은 화면 해상도는 (윈도우가 this가 참조 할 것입니다)는 WPF 창에서 다음 코드를 실행할 수 있습니다 수집 할 경우 : C#에서

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

분명히 NullReferenceException과 함께 작동하지 않습니다. – ender

+0

질문 상태 : _ "Visual C#을 사용하여 ** 화면 해상도를 ** 변경하고 수집 할 수 있습니까?"_ – MickyD

6

이 해상도 화면을 얻는 방법이다 :

버튼 클릭 또는 양식로드 :

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; 
관련 문제