[C#/WPF] 1차 디스플레이(1번 화면)의 전체 크기/작업 영역의 크기를 얻는다
→ h tps:// 퀵했다. 작은 m / 절 1707 / MS / 4f입니다 73D86 그림 d283 그림 C4f
하고 싶은 일
앱이 시작되면 모니터의 크기에 맞게 윈도우의 크기를 조절하고 싶습니다.
이를 위해 지금 모니터의 크기를 얻고 싶습니다.
방법
SystemParameters
클래스의, WorkArea.Width
/WorkArea.Height
혹은 PrimaryScreenWidth
/PrimaryScreenHeight
를 사용한다.
사용하는 것
내용
SystemParameters.WorkArea.WidthSystemParameters.WorkArea.Height
기본 모니터 작업 영역의 너비와 높이
SystemParameters.PrimaryScreenWidthSystemParameters.PrimaryScreenHeight
기본 모니터 전체의 폭과 높이
실험①
어떤 값을 취할 수 있는지 보자.
모니터의 배열
1 번 모니터 (기본 모니터) 설정
2번 모니터의 설정(해상도는 1번과 같고, 125%로 되어 있다)
코드
private void Button_Click(object sender, RoutedEventArgs e)
{
var w = SystemParameters.WorkArea.Width;
var h = SystemParameters.WorkArea.Height;
var pw = SystemParameters.PrimaryScreenWidth;
var ph = SystemParameters.PrimaryScreenHeight;
AddLog("WorkArea 幅:" + w + "高さ:" + h);
AddLog("PrimaryScreen 幅:" + pw + "高さ:" + ph);
}
〇결과
→1번 디스플레이는, 100% 설정이므로, 모니터의 해상도의 값 그대로.
〇 1차 디스플레이를 우측의 디스플레이로 하여 실행한 결과
→2번 디스플레이는 125% 설정이므로 각각 1920/1.25, 1080/1.25의 값이 되었다.
또, 앱은 1차로 설정한 디스플레이 쪽에 표시되었다.
실험②
실험①은 태스크바를 '자동으로 숨기도록' 실시하고 있었으므로 숨기지 않도록 하여 항상 표시되도록 하고 나서 실시해 본다. (1번 디스플레이, 100%로 실시)
〇결과
태스크바의 분만큼, WorkArea 쪽의 세로의 값이 작아졌다.
PrimaryScreenWidth와 Height는 변함없이.
※작업바를 위로 펼쳐 주거나 하면 그만큼 WorkArea의 값은 줄어드는 모습.
아래의 값은 작업 표시줄을 화면의 하반부까지 펼쳤을 때의 숫자.
실험③
자신의 앱의 윈도우 크기를 화면의 크기에 맞게 조정해 본다.
(시험에 기본 모니터의 중간에 모니터 작업 영역의 크기의 3/4 크기의 창을 내려 봅니다)
private void Button_Click_1(object sender, RoutedEventArgs e)
{
var screen_width = SystemParameters.WorkArea.Width;
var screen_height = SystemParameters.WorkArea.Height;
this.Width = screen_width * (3.0 / 4.0);
this.Height = screen_height * (3.0 / 4.0);
this.Top = screen_height * ((1.0 / 4.0) / 2.0);
this.Left = screen_width * ((1.0 / 4.0) / 2.0);
}
Reference
이 문제에 관하여([C#/WPF] 1차 디스플레이(1번 화면)의 전체 크기/작업 영역의 크기를 얻는다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tera1707/items/15fd23cab641c75945b9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
SystemParameters
클래스의, WorkArea.Width
/WorkArea.Height
혹은 PrimaryScreenWidth
/PrimaryScreenHeight
를 사용한다.사용하는 것
내용
SystemParameters.WorkArea.WidthSystemParameters.WorkArea.Height
기본 모니터 작업 영역의 너비와 높이
SystemParameters.PrimaryScreenWidthSystemParameters.PrimaryScreenHeight
기본 모니터 전체의 폭과 높이
실험①
어떤 값을 취할 수 있는지 보자.
모니터의 배열
1 번 모니터 (기본 모니터) 설정
2번 모니터의 설정(해상도는 1번과 같고, 125%로 되어 있다)
코드
private void Button_Click(object sender, RoutedEventArgs e)
{
var w = SystemParameters.WorkArea.Width;
var h = SystemParameters.WorkArea.Height;
var pw = SystemParameters.PrimaryScreenWidth;
var ph = SystemParameters.PrimaryScreenHeight;
AddLog("WorkArea 幅:" + w + "高さ:" + h);
AddLog("PrimaryScreen 幅:" + pw + "高さ:" + ph);
}
〇결과
→1번 디스플레이는, 100% 설정이므로, 모니터의 해상도의 값 그대로.
〇 1차 디스플레이를 우측의 디스플레이로 하여 실행한 결과
→2번 디스플레이는 125% 설정이므로 각각 1920/1.25, 1080/1.25의 값이 되었다.
또, 앱은 1차로 설정한 디스플레이 쪽에 표시되었다.
실험②
실험①은 태스크바를 '자동으로 숨기도록' 실시하고 있었으므로 숨기지 않도록 하여 항상 표시되도록 하고 나서 실시해 본다. (1번 디스플레이, 100%로 실시)
〇결과
태스크바의 분만큼, WorkArea 쪽의 세로의 값이 작아졌다.
PrimaryScreenWidth와 Height는 변함없이.
※작업바를 위로 펼쳐 주거나 하면 그만큼 WorkArea의 값은 줄어드는 모습.
아래의 값은 작업 표시줄을 화면의 하반부까지 펼쳤을 때의 숫자.
실험③
자신의 앱의 윈도우 크기를 화면의 크기에 맞게 조정해 본다.
(시험에 기본 모니터의 중간에 모니터 작업 영역의 크기의 3/4 크기의 창을 내려 봅니다)
private void Button_Click_1(object sender, RoutedEventArgs e)
{
var screen_width = SystemParameters.WorkArea.Width;
var screen_height = SystemParameters.WorkArea.Height;
this.Width = screen_width * (3.0 / 4.0);
this.Height = screen_height * (3.0 / 4.0);
this.Top = screen_height * ((1.0 / 4.0) / 2.0);
this.Left = screen_width * ((1.0 / 4.0) / 2.0);
}
Reference
이 문제에 관하여([C#/WPF] 1차 디스플레이(1번 화면)의 전체 크기/작업 영역의 크기를 얻는다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tera1707/items/15fd23cab641c75945b9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
private void Button_Click(object sender, RoutedEventArgs e)
{
var w = SystemParameters.WorkArea.Width;
var h = SystemParameters.WorkArea.Height;
var pw = SystemParameters.PrimaryScreenWidth;
var ph = SystemParameters.PrimaryScreenHeight;
AddLog("WorkArea 幅:" + w + "高さ:" + h);
AddLog("PrimaryScreen 幅:" + pw + "高さ:" + ph);
}
실험①은 태스크바를 '자동으로 숨기도록' 실시하고 있었으므로 숨기지 않도록 하여 항상 표시되도록 하고 나서 실시해 본다. (1번 디스플레이, 100%로 실시)
〇결과
태스크바의 분만큼, WorkArea 쪽의 세로의 값이 작아졌다.
PrimaryScreenWidth와 Height는 변함없이.
※작업바를 위로 펼쳐 주거나 하면 그만큼 WorkArea의 값은 줄어드는 모습.
아래의 값은 작업 표시줄을 화면의 하반부까지 펼쳤을 때의 숫자.
실험③
자신의 앱의 윈도우 크기를 화면의 크기에 맞게 조정해 본다.
(시험에 기본 모니터의 중간에 모니터 작업 영역의 크기의 3/4 크기의 창을 내려 봅니다)
private void Button_Click_1(object sender, RoutedEventArgs e)
{
var screen_width = SystemParameters.WorkArea.Width;
var screen_height = SystemParameters.WorkArea.Height;
this.Width = screen_width * (3.0 / 4.0);
this.Height = screen_height * (3.0 / 4.0);
this.Top = screen_height * ((1.0 / 4.0) / 2.0);
this.Left = screen_width * ((1.0 / 4.0) / 2.0);
}
Reference
이 문제에 관하여([C#/WPF] 1차 디스플레이(1번 화면)의 전체 크기/작업 영역의 크기를 얻는다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tera1707/items/15fd23cab641c75945b9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
private void Button_Click_1(object sender, RoutedEventArgs e)
{
var screen_width = SystemParameters.WorkArea.Width;
var screen_height = SystemParameters.WorkArea.Height;
this.Width = screen_width * (3.0 / 4.0);
this.Height = screen_height * (3.0 / 4.0);
this.Top = screen_height * ((1.0 / 4.0) / 2.0);
this.Left = screen_width * ((1.0 / 4.0) / 2.0);
}
Reference
이 문제에 관하여([C#/WPF] 1차 디스플레이(1번 화면)의 전체 크기/작업 영역의 크기를 얻는다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tera1707/items/15fd23cab641c75945b9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)