(Silverlight OOB) Как получить нормальную ширину и высоту главного окна, чтобы сохранить и восстановить их - PullRequest
0 голосов
/ 12 сентября 2010

У меня небольшое приложение вне браузера, и я хочу сохранить и восстановить его ширину окна + высоту + состояние между сеансами, используя IsolatedStorageSettings.ApplicationSettings.

Я пытаюсь сохранить настройки, подобные этой (on 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 Ответ

1 голос
/ 12 сентября 2010

В вашем случае я бы подключил событие SizeChanged к вашему корневому элементу и, основываясь на WindowState, я бы сохранил новый размер окна или проигнорировал его, если окно развернуто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...