(Silverlight OOB)如何获取主窗口的正常宽度和高度以保存和恢复它们

时间:2010-09-12 13:57:15

标签: silverlight silverlight-4.0 out-of-browser silverlight-oob

我有一个小的浏览器外应用程序,并希望使用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,这样在从最大化状态返回后窗口位置将被正确恢复。

1 个答案:

答案 0 :(得分:1)

在你的情况下,我会在你的根元素上挂起SizeChanged事件,并且基于WindowState我将保存新的窗口大小,或者如果窗口最大化则忽略它。