화면에서 WPF 앱을 센터하는 방법은 무엇입니까?
-
06-09-2019 - |
문제
기본 화면에서 시작시 WPF 앱을 중앙으로 중앙에하고 싶습니다. MyWindow.left와 MyWindow.top을 설정해야한다는 것을 알고 있지만 값은 어디에서 얻을 수 있습니까?
나는 찾았다 System.Windows.Forms.Screen.PrimaryScreen
, 분명히 WPF가 아닙니다. 화면 해상도를 제공하는 WPF 대안이 있습니까?
해결책
이것을 창 생성자에 넣으십시오
WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
.NET Frameworks Upported : 4, 3.5, 3.0
.NET Framework 클라이언트 프로파일 Upported in : 4, 3.5 SP1
다른 팁
XAML
WindowStartupLocation="CenterScreen"
WPF 앱에서 여전히 화면 클래스를 사용할 수 있습니다. 응용 프로그램에서 System.Windows.forms 어셈블리를 참조하면됩니다. 이 작업을 마치면 (아래 예제에 대한 참조 시스템을 참조) :
Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
... 잘 작동합니다.
메인 창 속성을 CenterScreen으로 설정하는 것을 고려해 보셨습니까?
PresentationFramework의 SystemParameters 클래스는 어떻습니까? 그것은 있습니다 작업 공간 당신이 찾고있는 것 같습니다.
그러나 왜 창을 설정하지 않는가? 센터 스크린은 열거 값 중 하나입니다. 센터링을 조정해야합니까?
참조 할 필요가 없습니다 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;