無効にしたときにフォームのサイズを変更したい場合は、そのフォームのサイズを変更し、アクティブにした場合はリセットし直します。それをリセットするために、私は、MainForm_SizeChangedで設定しているpreferredHeightとpreferredWidthというグローバル変数を持っています(これは、ユーザーが手動でフォームのサイズを変更した場合のものです)。しかし、新しい高さと幅を設定すると、SizeChangedメソッドが呼び出されます。ユーザーがSizeChangedイベントをトリガしたかどうかを区別する方法はありますか?また、私のフォームのサイズをリセットする良い方法はありますか?ありがとう!WPFフォームサイズがユーザーによって変更されましたが、プログラムでは変更されません
private void MainForm_SizeChanged(object sender, SizeChangedEventArgs e)
{
preferredHeight = MainForm.Height;
preferredWidth = MainForm.Width;
}
private void MainForm_Deactivated(object sender, EventArgs e)
{
MainGrid.RowDefinitions[3].Height = new GridLength(0);
MainGrid.RowDefinitions[4].Height = new GridLength(0);
MainForm.ResizeMode = ResizeMode.NoResize;
MainForm.Height = 100;
MainForm.Width = 100 * imageWidth/imageHeight;
}
private void MainForm_Activated(object sender, EventArgs e)
{
MainGrid.RowDefinitions[3].Height = new GridLength(1, GridUnitType.Star);
MainGrid.RowDefinitions[4].Height = new GridLength(2, GridUnitType.Star);
MainForm.ResizeMode = ResizeMode.CanResize;
MainForm.Width = preferredWidth;
MainForm.Height = preferredHeight;
}