我有一个小的浏览器外应用程序,并希望使用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,这样在从最大化状态返回后窗口位置将被正确恢复。
答案 0 :(得分:1)
在你的情况下,我会在你的根元素上挂起SizeChanged事件,并且基于WindowState我将保存新的窗口大小,或者如果窗口最大化则忽略它。