MaxWidthが設定されたWPFウィンドウがあるので、[最大化]ボタンを押すと、垂直方向に最大化されますが、水平方向には最大化されません。これは予想される動作です。ただし、ウィンドウは常に画面の左側にドッキングし(Windows 7、それが重要な場合)、最大化したときに水平方向の中央に配置する必要があります。次のStateChanged
イベントハンドラーを追加しようとしましたが、何も実行されないようです。
private void wdw_mainWindow_StateChanged(object sender, EventArgs e)
{
switch (WindowState)
{
case WindowState.Maximized:
var windowWidth = (double)GetValue(WidthProperty);
Left = (SystemParameters.PrimaryScreenWidth / 2) - (windowWidth / 2);
break;
}
}
ステートメントにブレークポイントを設定しましたswitch
が、アプリの[最大化]ボタンを押すと、このコードが確実にヒットします。ただし、Left
設定した後も、ウィンドウは画面の左側にしっかりと固定されたままです。どうしたの?