0

小さなブラウザ外アプリがあり、IsolatedStorageSettings.ApplicationSettings を使用して、セッション間でウィンドウの幅 + 高さ + 状態を保存および復元したいと考えています。

私はこのような設定を保存しようとしています(Application_Exitで):

IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings;
Window mainWindow = Application.Current.MainWindow;

appSettings["WindowTop"] = mainWindow.Top;
appSettings["WindowLeft"] = mainWindow.Left;
appSettings["WindowWidth"] = mainWindow.Width;
appSettings["WindowHeight"] = mainWindow.Height;
appSettings["WindowState"] = (UInt32)mainWindow.WindowState;

悪い点は、アプリが最大化されたときです。このコードは、通常のサイズ/位置 (最大化前) ではなく、最大化されたウィンドウの幅、高さ、左、および上を保存します。

通常のウィンドウのサイズと位置をどこかで取得できますか?

Application_Startup にその値を設定すると、通常のサイズ/位置を設定してから WindowState を設定できるため、最大化された状態から戻った後にウィンドウの位置が正しく復元されます。

4

1 に答える 1

1

あなたの場合、ルート要素に SizeChanged イベントをフックし、WindowState に基づいて、新しいウィンドウ サイズを保存するか、ウィンドウが最大化されている場合は無視します。

于 2010-09-12T19:47:00.757 に答える