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();
        }