c#—WinForm/WPF全屏 隐藏标题栏和任务栏

WinForm:

        /// <summary>
        /// 全屏按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            if (this.FormBorderStyle == FormBorderStyle.None)//全屏
            {
                this.WindowState = FormWindowState.Normal;
                this.FormBorderStyle = FormBorderStyle.Sizable;
            }
            else//非全屏
            {
                this.FormBorderStyle = FormBorderStyle.None;
                this.WindowState = FormWindowState.Normal;//先将窗体设置为Nomal,以防最大化时全屏出现的BUG
                this.WindowState = FormWindowState.Maximized;
            }
        }

        /// <summary>
        /// 全屏的快捷功能,F12相当于单击按钮;Esc健,如果全屏则退出全屏
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F12)
            {
                button1.PerformClick();
                e.Handled = true;
            }
            else if (e.KeyCode == Keys.Escape)//esc键盘退出全屏
            {
                if (this.FormBorderStyle == FormBorderStyle.None)//全屏
                {
                    this.WindowState = FormWindowState.Normal;
                    this.FormBorderStyle = FormBorderStyle.Sizable;
                    e.Handled = true;
                }
            }
        }

WPF:

代码逻辑和WinForm是一样的,只是属性名不太一样
        private void main_window_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.F12)
            {
                if (this.WindowStyle == WindowStyle.None)//全屏
                {
                    this.WindowState = WindowState.Normal;
                    this.WindowStyle = WindowStyle.SingleBorderWindow;
                }
                else//非全屏
                {
                    this.WindowStyle = WindowStyle.None;
                    this.WindowState = WindowState.Normal;
                    this.WindowState = WindowState.Maximized;
                }
            }
            else if (e.Key == Key.Escape)
            {
                if (this.WindowStyle == WindowStyle.None)//全屏
                {
                    this.WindowState = WindowState.Normal;
                    this.WindowStyle = WindowStyle.SingleBorderWindow;
                }
            }
        }


不知道为啥不用API任务栏也能隐藏...win7 32位测试可行。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值