У меня есть небольшое приложение, отличное от браузера, и вы хотите сохранить и восстановить его ширину окна + высоту + состояние между сеансами, используя IsolatedStorageSettings.ApplicationSettings.(Silverlight OOB) Как получить нормальную ширину и высоту главного окна, чтобы сохранить и восстановить их
Я пытаюсь сохранить настройки, как это (на 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, поэтому положение окна будет восстановлено правильно после возвращения из максимизированного состояния.
Как изменить положение окна без изменения размера? Я хочу сохранить Top/Left из главного окна. – Andrew
Класс Window в silverlight имеет очень ограниченную функциональность. В это время я не могу придумать никакого способа узнать, когда изменится положение окна. Вы можете проверить свойства Top/Left один раз каждые x секунд, используя DispatcherTimer, но это довольно неэлегантное решение – Denis
Большое спасибо, Денис – Andrew