private void PersistWindowPlacement() { if (!_hwnd.HasValue) { return; } try { var placement = default(WINDOWPLACEMENT); if (NativeMethods.GetWindowPlacement(_hwnd.Value, ref placement)) { Logger.Debug(string.Format("Placement details being saved (real): Top {0} Left {1} Width {2} Height {3} State {4}", placement.rcNormalPosition.Top, placement.rcNormalPosition.Left, placement.rcNormalPosition.Width, placement.rcNormalPosition.Height, placement.showCmd)); UpdateWindowPlacement(ref placement); using (var writer = new StreamWriter(new IsolatedStorageFileStream(_storageFilePath, FileMode.Create, FileAccess.Write, _store))) { writer.Write(StructConverter.ToString(placement)); Logger.Debug(string.Format("Placement details being saved (virtual): Top {0} Left {1} Width {2} Height {3} State {4}", placement.rcNormalPosition.Top, placement.rcNormalPosition.Left, placement.rcNormalPosition.Width, placement.rcNormalPosition.Height, placement.showCmd)); writer.Flush(); } } } catch (Exception ex) { Logger.Error("Error saving window position", ex); } }
public override string ToString() { return(string.Concat(Prefix, StructConverter.ToString(this))); }