C# 笔记4——如何实现单击放大全屏和退出全屏
2016-08-31 10:40
232 查看
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#笔记2——如何实现treeview的单击功能
- 信号退出【Linux学习笔记】kill及kill -9的用法及如何实现进程的优雅退出
- C#笔记1——如何在登录界面设置主界面的ToolStripMenuItem的enabled属性,实现不同用户进入不同模块
- android安卓如何实现单击提示“再按一次退出”,双击退出,实现双击监听
- iOS开发笔记--如何实现程序长时间未操作退出
- 如何在C#中实现全屏模式
- 【Linux学习笔记】kill及kill -9的用法及如何实现进程的优雅退出
- iOS开发笔记:实现点击图片放大全屏
- 如何在C#中实现窗体全屏模式
- 【Python笔记】Python多线程进程如何正确响应Ctrl-C以实现优雅退出
- iOS开发笔记:实现点击图片放大全屏
- android安卓如何实现单击提示“再按一次退出”,双击退出,实现双击监听
- 信号退出【Linux学习笔记】kill及kill -9的用法及如何实现进程的优雅退出
- 在c#中如何实现对图象的翻转、放大、缩小操作以及缩微图
- Android使用PhotoView实现图片双击放大单击退出效果
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- 如何在C#代码中实现在Sqlserver2000中添加用户?以及附加数据库?
- 请问在C#中如何实现声音报警?
- [转]在ASP.NET中如何用C#.NET实现基于表单的验证(二)
- 如何在C#用WM_COPYDATA消息来实现两个进程之间传递数据