void LoadWindowPlacement(object sender, EventArgs e) { var window = sender as Window; // Windowのサイズと位置をファイルから読み込んで設定する try { var wp = (WINDOWPLACEMENT)Properties.Settings.Default[SettingName]; if (wp.normalPosition.Top == 0 && wp.normalPosition.Bottom == 0 && wp.normalPosition.Left == 0 && wp.normalPosition.Right == 0) { // 初めてアプリケーションを起動したときは、サイズがすべて0になっている。 return; } wp.length = Marshal.SizeOf(typeof(WINDOWPLACEMENT)); wp.flags = 0; wp.showCmd = (wp.showCmd == NativeWindowPlacementHelper.SW_SHOWMINIMIZED ? NativeWindowPlacementHelper.SW_SHOWNORMAL : wp.showCmd); IntPtr hwnd = new WindowInteropHelper(window).Handle; NativeWindowPlacementHelper.SetWindowPlacement(hwnd, ref wp); } catch { } }
void SaveWindowPlacement(object sender, CancelEventArgs e) { var window = sender as Window; // Windowのサイズと位置をファイルに保存する WINDOWPLACEMENT wp; IntPtr hwnd = new WindowInteropHelper(window).Handle; NativeWindowPlacementHelper.GetWindowPlacement(hwnd, out wp); Properties.Settings.Default[SettingName] = wp; Properties.Settings.Default.Save(); }