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条件)
            }

        }

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

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我的华为之路——销售工程师二面,周三,西苑1层。 从西苑回来好好休息,以为第二天不会又面试,很轻松的起床后发现,凌晨华为发了二面通知短信。我是9点,起床时已经8:20…… 既来之则安之的洗漱,穿衣,出门,打车过去。9:05到达西苑。第一批二面的已经出发了……于是无聊的等待。好几拨二面都已经出发,都没有我。10点,终于有我了。现在想来,也有可能是把我安排到有来自华赛的面试官的场次了吧……" 正好有一位之前认识的同是北邮的cx和我一场,于是决定共进退。进场后发现之前给我一面的A也在面试官的行列,呵呵,感觉很奇特~坐定,女生4人,平分坐,每组两人。对面一组(成为K组吧~)有来自清华,北大,外经贸的传统“侃”校的人。另外还有化工,北交,北语等几位分散在各组。流程: 1,自我介绍,每人1分钟左右。 首先根据之前各位分享的面经,了解到相互介绍的环节。于是记录。沉稳的介绍完自己。 自我介绍围绕基本情况,今后职业发展目标或者人生目标,自己的优缺点这三点来介绍。 2,相互介绍,换顺序 面试官提出由K组开始,依次倒序介绍我们组的成员。北大的哥们在自我介绍时候没有注意别人的发言,介绍的很不好,仅仅是名字和学校。后来的环节中,他也提到,这个环节对他的影响很大,导致总体没有发挥。同志们引以为戒~ 到我们组时候,改了顺序,并提出不要看之前自己记录的东西。 2.5,插曲,一位面试官对于之前自我介绍中个人所提的缺点逐个问询。 3,给你印象深刻的人,以及其优点 这个环节没按照顺序。由于视线的问题以及自我介绍时候的特色,我介绍了对面一位女生,其他人也分别介绍了印象较深的人。其中很多人提到我,第一次当面被如此多的人提到对自己印象深刻,有些意外和兴奋,呵呵~这个环节结束后,A问我别人认可你的感觉和原因。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值