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 回答