125

プライマリ画面の起動時に WPF アプリを中央に配置したいと考えています。myWindow.Left と myWindow.Top を設定する必要があることはわかっていますが、値はどこで取得できますか?

System.Windows.Forms.Screen.PrimaryScreenどうやらWPFではないことがわかりました。画面解像度などを提供するWPFの代替手段はありますか?

4

8 に答える 8

183

xaml

<Window ... WindowStartupLocation="CenterScreen">...
于 2011-05-24T13:44:20.597 に答える
159

これをウィンドウコンストラクターに入れます

WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

.NETフレームワークサポート対象:4、3.5、3.0

.NET Frameworkクライアントプロファイルサポート対象:4、3.5 SP1

于 2011-02-18T16:30:14.477 に答える
49

WPF アプリから引き続き Screen クラスを使用できます。アプリケーションから System.Windows.Forms アセンブリを参照するだけです。それが完了したら (以下の例では System.Drawing を参照):

Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;

...うまくいきます。

メイン ウィンドウ プロパティ WindowStartupLocation を CenterScreen に設定することを検討しましたか?

于 2009-06-01T16:37:10.110 に答える
8

PresentationFrameworkのSystemParametersクラスはどうですか?それはあなたが探しているもののように見えるWorkAreaプロパティを持っています。

しかし、なぜWindow.WindowStartupLocationの設定が機能しないのでしょうか。CenterScreenは列挙値の1つです。センタリングを微調整する必要がありますか?

于 2009-06-04T03:34:50.567 に答える
8

System.Windows.Formsアプリケーションからアセンブリを参照する必要はありません。代わりに、 を使用できますSystem.Windows.SystemParameters.WorkArea。これはSystem.Windows.Forms.Screen.PrimaryScreen.WorkingArea!

于 2011-09-05T06:53:53.750 に答える
2

WPF に相当するものはありません。System.Windows.Forms.Screenはまだ .NET フレームワークの一部であり、WPF から使用できます。

詳細については、この質問WindowInteropHelperを参照してください。ただし、クラスを使用して WPF コントロールをラップすることにより、画面に関連する呼び出しを使用できます。

于 2009-06-01T16:39:12.247 に答える