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,最后设置与之相关控件的位置和大小就可以了;退出放大几乎就干一些还原工作了,把放大的属性恢复到初始状态即可。


截图如下:

未放大


已放大




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


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

this.FormBorderStyle = FormBorderStyle.None;     //设置窗体为无边框样式   this.WindowState = FormWindowState....
  • friendan
  • friendan
  • 2012年03月13日 21:10
  • 8210

C# 满屏覆盖任务栏显示

//窗体覆盖任务栏   this.FormBorderStyle = FormBorderStyle.None; this.WindowState = FormWindowState.M...
  • selaginella
  • selaginella
  • 2017年04月05日 15:54
  • 709

C# 实现Winform全屏后不遮挡任务栏,显示任务栏

最近在忙中抽闲,看我的桌面太过死了,不生动,不可爱=。=。。 然后默默的想写一个动态桌面的一个小东西活泼一下。。。 随后拿起来了N久不碰的C#(本人C#渣,不,应该说什么都渣。。。) 结果在wi...
  • A757291228
  • A757291228
  • 2017年05月28日 11:34
  • 1839

WinForm实现全屏方法

1、实现窗体全屏显示方法:在全屏方法中进行如下操作this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;this.Windo...
  • lianchangshuai
  • lianchangshuai
  • 2011年04月15日 11:31
  • 14739

C#笔记9——基于TableLayoutPanel的多分屏、全屏程序

C#笔记9——基于TableLayoutPanel的多分屏、全屏程序     最近由于工作需要,需要设置一个多分屏窗口以便于多分屏播放视频! 思考了一下,大致思路如下:用TableLayoutPane...
  • u011127242
  • u011127242
  • 2017年02月18日 17:08
  • 592

C# 双击TableLayoutPanel中某个控件全屏显示,再次双击恢复原貌

程序中用到的TableLayoutPanel有两行两列,在(1,1)处有一picturebox 现在要实现双击该picturebox全屏显示(状态栏和菜单栏一起显示),代码:         pr...
  • u010956619
  • u010956619
  • 2016年04月17日 19:37
  • 1060

C#让控件全屏。退出全屏

新建一个窗口,设置 FormBorderStyle为None,WindowState为Maximized,TopMost为True。 AddEventKeyUp(control); ...
  • huntagain2008
  • huntagain2008
  • 2012年06月19日 14:44
  • 423

WinForm无边框窗体实现双击缩放及拖动

有时候要实现无边框的winform窗体,由于没有边框了,所以缩放功能没有了,同时也不能拖动窗体。在实际应用中,我们经常会有一个窗体的头部来显示Title,需要在这个头部左键双击实现缩放以及左键按住实现...
  • lwwl12
  • lwwl12
  • 2015年11月09日 10:06
  • 1110

MFC窗口客户区全屏显示以及PICTURE控件全屏显示

相信用电脑看过电影的人都会下意识的默认双击一个播放器就会得到全屏播放影片的效果,那这个是怎么做到的呢?其实本人也是不知道的。。当然这篇文章不是到这就完了,而是介绍一种在MFC上全屏显示窗口或者PICT...
  • wozhengtao
  • wozhengtao
  • 2016年05月30日 01:07
  • 3001

用Html5 or JS实现点击一个按钮达到浏览器全屏效果

点击一个按钮要实现按F11全屏的效果。 在HTML5中,W3C制定了关于全屏的API,就可以实现全屏幕的效果 项目中需要将后台浏览器的窗口全屏,也就是我们点击一个按钮要实现按F1...
  • English0523
  • English0523
  • 2016年08月11日 13:42
  • 2657
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 笔记4——如何实现单击放大全屏和退出全屏
举报原因:
原因补充:

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