4

これは、回答済みの質問 [こちら][1] に対するフォローアップの質問です。

そこでは、WPF ウィンドウの開始位置が XAML で定義されていました。今、コードでこれらのプロパティを変更する方法を知りたいですか? たとえば、次のように言えますか。

Window1.Top = ウィンドウ ロード イベント ハンドラで 40? または、開始位置を動的に変更するためにどのウィンドウイベントを設定する必要がありますか?

目標は、ウィンドウがレンダリングされる前にウィンドウの開始位置を動的に設定することです。

4

2 に答える 2

7

これは、コードで行うのはかなり簡単です。

public partial class Window1 {

    public Window1()
    {
         InitializeComponent();
         this.Height = 500;
         this.Width = 500;
         this.WindowStartupLocation = WindowStartupLocation.Manual;
         this.Left = 0;
         this.Top = 0;
    }
}

任意のパラメーターを設定できますが、Top/Left を設定する場合は、必ず WindowStatupLocation を設定してください (または XAML で手動に設定してください)。

于 2009-10-09T20:10:52.217 に答える
0

個人的には、InitializeComponent() の呼び出しの後に、「Window1.Top = 40」タイプの行をコンストラクターにスローします。これは、ウィンドウが実際にレンダリングされる前に必ず呼び出されます。

編集:おっと。もっと注意深く読むべきだった。

ウィンドウ自体の位置以外のクラスからウィンドウの位置を設定しようとしていますか? Window1 のコンストラクター内から Window1 の位置を設定できれば、私の提案は機能します。

それ以外の場合は、ウィンドウの Loaded イベントをリッスンして、そこから位置を設定するのが最善だと思います。

于 2009-10-09T20:08:06.480 に答える