WPF 最大化最小化窗口


public static void FullOrMin(this Window window)
        {
            //如果是全屏,則最小化
            if (window.WindowState == WindowState.Maximized)
            {
                window.Topmost = false;
                window.WindowState = WindowState.Normal;
                window.WindowStyle = WindowStyle.SingleBorderWindow;

                window.ResizeMode = ResizeMode.CanResizeWithGrip;//設置為可調整窗體大小
                window.Width = 800;
                window.Height = 600;

                //獲取窗口句柄 
                var handle = new WindowInteropHelper(window).Handle;
                //獲取當前顯示器屏幕
                Screen screen = Screen.FromHandle(handle);

                window.Left = (screen.Bounds.Width - window.Width) / 2;
                window.Top = (screen.Bounds.Height - window.Height) / 2;

                window.WindowState = WindowState.Minimized;
                return;
            }

            //如果是窗口,則全屏
            if (window.WindowState == WindowState.Normal)
            {
                //變成無邊窗體
                window.WindowState = WindowState.Normal;//假如已經是Maximized,就不能進入全屏,所以這里先調整狀態
                window.WindowStyle = WindowStyle.None;
                window.ResizeMode = ResizeMode.NoResize;
                window.Topmost = true;//最大化后總是在最上面

                //獲取窗口句柄 
                var handle = new WindowInteropHelper(window).Handle;

                //獲取當前顯示器屏幕
                Screen screen = Screen.FromHandle(handle);

                //調整窗口最大化,全屏的關鍵代碼就是下面3句
                window.MaxWidth = screen.Bounds.Width;
                window.MaxHeight = screen.Bounds.Height;
                window.WindowState = WindowState.Maximized;


                //解決切換應用程序的問題
                window.Activated += new EventHandler(window_Activated);
                window.Deactivated += new EventHandler(window_Deactivated);
            }

        }

        static void window_Deactivated(object sender, EventArgs e)
        {
            var window = sender as Window;
            window.Topmost = false;
        }

        static void window_Activated(object sender, EventArgs e)
        {
            var window = sender as Window;
            window.Topmost = true;
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM