[c#] WPF 앱을 화면 중앙에 배치하는 방법은 무엇입니까?
시작시 기본 화면의 WPF 앱을 중앙에 배치하고 싶습니다. myWindow.Left 및 myWindow.Top을 설정해야한다는 것을 알고 있지만 값은 어디에서 얻을 수 있습니까?
나는 System.Windows.Forms.Screen.PrimaryScreen
분명히 WPF가 아닌 것을 발견했습니다 . 화면 해상도 또는 이와 유사한 것을 제공하는 WPF 대안이 있습니까?
답변
이것을 창 생성자에 넣으십시오.
WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
.NET FrameworkSupported in : 4, 3.5, 3.0
.NET Framework 클라이언트 프로필 지원 : 4, 3.5 SP1
답변
xaml
WindowStartupLocation="CenterScreen"
답변
WPF 앱에서 Screen 클래스를 계속 사용할 수 있습니다. 응용 프로그램에서 System.Windows.Forms 어셈블리를 참조하기 만하면됩니다. 이를 완료하면 (아래 예제에서 System.Drawing을 참조) :
Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
… 잘 작동합니다.
주 창 속성 WindowStartupLocation을 CenterScreen으로 설정하는 것을 고려해 보셨습니까?
답변
PresentationFramework의 SystemParameters 클래스는 어떻습니까? 그것은이 Workarea에의 당신을 위해 무엇을 찾고있는 것 같다 속성을.
그러나 Window.WindowStartupLocation 설정이 작동하지 않는 이유는 무엇입니까? CenterScreen은 열거 형 값 중 하나입니다. 센터링을 조정해야합니까?
답변
System.Windows.Forms
애플리케이션 에서 어셈블리 를 참조 할 필요가 없습니다 . 대신 System.Windows.SystemParameters.WorkArea
. 이것은 System.Windows.Forms.Screen.PrimaryScreen.WorkingArea
!
답변
WPF에 해당하는 것은 없습니다. System.Windows.Forms.Screen
여전히 .NET 프레임 워크의 일부이며 WPF에서 사용할 수 있습니다.
자세한 내용은 이 질문 을 참조하십시오. 그러나 WindowInteropHelper
클래스를 사용 하여 WPF 컨트롤을 래핑 하여 화면과 관련된 호출을 사용할 수 있습니다 .
답변
var window = new MyWindow();
화면 중앙 사용 :
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
부모 창의 중앙에 사용 :
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;