C#窗体程序实现全屏及取消全屏

由于项目需要,需要用vs窗体程序实现播放视频的窗口的全屏和取消全屏。具体实现界面如图:

这是初始状态,视频框的右上角就是控制全屏的按钮
这是全屏后的状态,此时全屏按钮变成了取消全屏的样式
注:为了界面的美观我的全屏并没有把左边的那些控件也盖住,但是是可以设置的,下边代码部分我会进行讲解。

1、首先说明一下我所用的控件及我的项目中控件的名称,以便大家理解。
显示视频的黑框是一个picturebox即代码中的VideoPlayWnd,全屏/取消全屏是一个button即代码中的button4
2、具体代码如下:

全屏和取消全屏是一个按钮即button4

        private Int16 zoom = -1;//用来控制点击此button4的时候,是需要全屏还是取消全屏
 //视频窗口的缩放代码
        private void button4_Click(object sender, EventArgs e)
        {
            if(zoom<0)
            {
                float w = this.Width - 210; //为了保证左边的控件不被挡上减了一个210
                float h = this.Height - 50;//为了底下的按钮不被挡上,因为还要用到,因此减了50
                this.VideoPlayWnd.Size = Size.Ceiling(new SizeF(w, h));//重新部署视频框即这个picturebox空间的长宽
                VideoPlayWnd.Location = new System.Drawing.Point(210, 0);//视频框的左上角坐标,会发现与我上边减去的210一致(大家肯定都理解为什么我就不说了)
                button4.Location = new System.Drawing.Point(795, 0);//不能只有picturebox变了,这个button的位置也要保证和视频框同步,所以需要重设坐标
                // button4.BackgroundImage = Image.FromFile(@"E:\lwj\addpersoninfo\addpersoninfo\Resources\退出全屏.png");//绝对路径(这是我测试的时候用的)
                button4.BackgroundImage = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + @"退出全屏.png");//AppDomain.CurrentDomain.BaseDirectory语句可以获取到你当前项目的bin目录,所以需要把图片放到对应目录下
                zoom = 1;//全屏之后,再点击需要取消全屏,因此要改变zoom的值
            }
            else
            {  //以下为取消全屏,即还原自己的视频框和按钮,具体操作类似全屏,就不细致注释了
                VideoPlayWnd.Location = new System.Drawing.Point(495, 360);
                this.VideoPlayWnd.Size = Size.Ceiling(new SizeF(323, 271));
                button4.Location = new System.Drawing.Point(795, 360);
                button4.BackgroundImage = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + @"全屏.png");
                zoom = -1;//取消全屏后再点击就要进行全屏,因此继续设为-1(保证小于0,以满足全屏操作的if条件)
            }

        }

以上代码中的按钮是给它加了一个全屏样式的背景图片,并在点击时切换背景图片。
第一次写博客,写得不好还要见谅啊,写的好的话,就夸夸我吧!哈哈。肯定还有更好用的方法,大家可以踊跃留言告诉我啊!一起学习进步。

猜你喜欢

转载自blog.csdn.net/weixin_39638351/article/details/81512795
今日推荐