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

 

按需求,如果需要全屏后再还原窗口的话,就再全屏前记录窗口的属性

最小化后窗口也是一样,在最小化前记录窗口的属性,我这里直接给赋值了,

转载于:https://www.cnblogs.com/mcc7/archive/2011/10/21/2220261.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值