WPF アプリを画面の中央に配置するにはどうすればよいですか?
-
06-09-2019 - |
質問
WPF アプリを起動時にプライマリ画面の中央に配置したいと考えています。myWindow.Left と myWindow.Top を設定する必要があることはわかっていますが、値はどこで取得すればよいでしょうか?
見つけました System.Windows.Forms.Screen.PrimaryScreen
, 、これは明らかに WPF ではありません。画面解像度などを提供する WPF の代替手段はありますか?
解決
あなたのウィンドウコンストラクタでこれを入れて
WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
.NET FrameworkSupported中:4、3.5、 3.0
.NET FrameworkのクライアントProfileSupported 中:4、3.5 SP1
他のヒント
xaml
WindowStartupLocation="CenterScreen"
あなたはまだWPFアプリからScreenクラスを使用することができます。あなたは自分のアプリケーションからのSystem.Windows.Formsアセンブリを参照する必要があります。
:あなたは(以下例えばSystem.Drawing参照)、ということをやったらRectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
...だけで正常に動作します。
あなたは、画面の中央にメインウィンドウのプロパティWindowStartupLocationを設定すると考えていますか?
PresentationFrameworkでSystemParametersクラスについては何?それはあるように思わ WorkAreaのの性質を持っています何を探しています。
しかし、なぜWindow.WindowStartupLocation作業を設定していないのだろうか?画面の中央には、列挙型の値のいずれかです。あなたがセンタリングを微調整する必要がありますか?
あなたは、アプリケーションからSystem.Windows.Forms
アセンブリを参照する必要はありません。代わりに、あなたはSystem.Windows.SystemParameters.WorkArea
を使用することができます。これはSystem.Windows.Forms.Screen.PrimaryScreen.WorkingArea
と同等です!
WPF に相当するものはありません。 System.Windows.Forms.Screen
ただし、.NET Framework の一部であるため、WPF からも使用できます。
見る この質問 詳細については、を参照してください。ただし、画面に関連する呼び出しを使用するには、 WindowInteropHelper
WPF コントロールをラップするクラス。
var window = new MyWindow();
スクリーン使用の中心のための
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
親ウィンドウの使用のための中央ます:
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;