C# 笔记4——如何实现单击放大全屏和退出全屏

原创 2016年08月31日 10:40:51

C# 笔记4——如何实现单击放大全屏和退出全屏

      由于工作需求,需要实现单击放大和退出全屏功能,想了一下,即单击放大时候把播放视频的picturebox的大小设置和屏幕宽高相同、位置设置为屏幕左上角(0,0)即可,单击退出全屏时候把控件大小和位置恢复到初始位置即可。
      需要注意的是若控件在某一个panel中,也需要如上设置panel的位置和宽高,否则无法达到理想效果;对于需要全屏的控件最好将其单独放在一个panel中,否则容易出现其它控件叠加到放大控件上的不良效果。
      主要思路说完了,开始晒代码了!

单击按钮代码如下:

private void RealPlayWnd_Click(object sender, EventArgs e)
        {
            Rectangle rect = new Rectangle();
            //rect = Screen.GetWorkingArea(this) ;//获取工作分辨率会出现一个问题,若任务栏放在最左边,则会在最右边留下任务栏的宽度
            rect = Screen.GetBounds(this);
            if (!video_max)
            {
                //放大
                this.RealPlayWnd.Dock = DockStyle.Fill;     //DockStyle.None
                this.FormBorderStyle = FormBorderStyle.None;
                //this.WindowState = FormWindowState.Maximized; 不需要
                this.MaximumSize = new Size(rect.Width, rect.Height);
                //设置相应控件的位置
                this.Location = new System.Drawing.Point(0, 0);
                this.panel_rt_video.Location = new System.Drawing.Point(0, 0);
                this.panel_rt_video_pic.Location = new System.Drawing.Point(0, 0);
                //设置主窗体和相应控件的宽高
                this.Width = rect.Width;
                this.Height = rect.Height;
                panel_rt_video.Width = rect.Width;
                panel_rt_video.Height = rect.Height;
                panel_rt_video_pic.Width = rect.Width;
                panel_rt_video_pic.Height = rect.Height;
                this.RealPlayWnd.Width = rect.Width;
                this.RealPlayWnd.Height = rect.Height;
                video_max = true;
            }
            else {
                //缩小
                this.RealPlayWnd.Dock = DockStyle.None;     //DockStyle.None
                this.FormBorderStyle = FormBorderStyle.Sizable;
                //恢复各个控件的宽高
                this.Width = 1200;
                this.Height = 750;
                panel_rt_video.Width = 977;
                panel_rt_video.Height = 590;
                panel_rt_video_pic.Width = 610;
                panel_rt_video_pic.Height = 410;
                this.RealPlayWnd.Width = 593;
                this.RealPlayWnd.Height = 401;
                //恢复各个窗体的初始位置
                this.Location = new Point((rect.Width - this.Width) / 2, (rect.Height - this.Height) / 2);
                this.panel_rt_video.Location = new Point(202, 119);
                this.panel_rt_video_pic.Location = new Point(274, 18);
                video_max = false;
            }
        }


      如上,需要放大和缩小的有主窗体、两个panel(panel_rt_video,panel_rt_video_pic)和一个picturebox(RealPlayWnd),放大前需要获取显示屏的大小,然后设置放大控件的Dock(RealPlayWnd.Dock = DockStyle.Fill )属性为Fill、设置form的FormBorderStyle(this.FormBorderStyle = FormBorderStyle.None;)属性为None,最后设置与之相关控件的位置和大小就可以了;退出放大几乎就干一些还原工作了,把放大的属性恢复到初始状态即可。


截图如下:

未放大


已放大




      至此,已经可以初步实现放大全屏和退出全屏的功能了!


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

WinForm实现全屏方法

1、实现窗体全屏显示方法:在全屏方法中进行如下操作this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;this.Windo...

C#/winform设置窗体自动缩放适应不同尺寸的电脑屏幕大小

由于要用winform开发一个桌面安装版考试软件,用户量也比较多, 所以很多用户反映软件的界面经常超出屏幕,部分功能或内容无法显示完整。 软件界面有几个设置大小固定为宽1066, 高718...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

c# winform最大化覆盖全屏幕(formborderstyle=none)怎么处理?

c# winform最大化覆盖全屏幕(formborderstyle=none)怎么处理?

C#winform程序窗口全屏是否遮盖任务栏问题

 在作winform程序时遇到窗口如果全屏时,遮盖任务栏的问题,从网上搜到如下解决办法,与各位共享。以下代码本人都试过,没问题:     1.   执行如下按钮事件   private...

C# 控件随窗口大小变化自动缩放

1 要想控件随窗口大小变化自动缩放,就要重写Resize函数就可以实现了。 protected override void OnResizeEnd(EventArgs e) ...

C#启动时全屏显示窗体...

this.FormBorderStyle = FormBorderStyle.None;     //设置窗体为无边框样式   this.WindowState = FormWindowState....

C# 笔记4——如何实现单击放大全屏和退出全屏

C# 笔记4——如何实现单击放大全屏和退出全屏 由于工作需求,需要实现单击放大和退出全屏功能,想了一下,即单击放大时候把播放视频的picturebox的大小设置和屏幕宽高相同、位置设置为屏幕左上角(...

wpf 双击事件及全屏和退出全屏

作为一个新手,大家不要乱喷,高手勿进。嘿嘿 最近在做一个win7的cs软件,可是把窗口拖动到边框上就会让窗口全屏,并且不能自动退出全屏,没有办法就百度了,大概有两种方法, 1、就是修改注册表把wi...

JS实现HTML中frameset浏览器全屏和退出全屏

/* 全屏 */ function fullScreen() { var el = document.documentElement; ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)