C#在截屏时将截屏之前需要隐藏的控件也截入
最近我在项目中遇到一个让我十分头疼的问题,就是我在截屏时也将截屏之前隐藏的控件也截入了。
情况:我在Winform窗体有个截屏功能按钮,实现在调用WPF全屏后截屏,但在截屏WPF界面前将界面里的一个Label标签提示语隐藏掉。这个让我感到十分的奇怪的是,我隐藏的代码明明写在截屏代码之前,按照同步线程,
在执行完隐藏控件代码之后才进入截屏代码的,而且我用MessageBox弹框测试了下,确认在截屏之前控件是隐藏的。
方法一:
我谷歌搜索分析了很久,发现可能是隐藏控件需要一定的时间,截图前调用了hide,但hide尚未完成时就截了图了。后来加入了线程Sleep,但是还是不行,发现因为sleep阻塞的是hide所在的线程,所以我就起个线程hide,这样就可以截屏了。
方法二:
将隐藏控件放入截屏功能按钮MouseEnter事件里,这样就在点击事件之前就将控件隐藏了。如果想显示控件不想截屏,也可以在MouseLeave事件里显示该控件即可。
C#在截屏时将截屏之前需要隐藏的控件也截入的更多相关文章
- Android 滑动RecyclerView时隐藏部分控件
在使用RecyclerView控件时,上下拖动控件时的时候,需要实时的隐藏与显示部分控件,已到达很好的用户体验. 原理很简单,当RecyclerView拖动至最上层时显示控件,当RecyclerV ...
- audio与video控件/标签的隐藏,iso/Android下自动全屏播放,短暂黑屏问题
(一)audio音频标签 <audio src="xxx.mp3"></audio> (二)video视频标签 <video src="xx ...
- video 全屏,播放,隐藏控件。
requestFullscreen全屏具体实现 1.进入全屏 function full(ele) { if (ele.requestFullscreen) { ele.requestFullscre ...
- Android使用的webcview中带有音乐播放控件,在关闭或分享时处于界面不可见状态下,声音仍在播放的问题解决
一. 问题出现原因 我们在做APP分享时,分享webview加载带有音乐播放控件的网页.当弹出分享界面,webview的网页处于后台状态或关闭该网页时,音乐声仍在播放.出现该类现象使我 ...
- VC++ CStatic控件背景透明且改变其文本时,文字重叠解决方法
最近在项目中将CStatic控件设置为背景透明且在一个定时器函数改变其文本,结果CStatic的文字重叠了.解决该问题的方案是:从CStatic类派生自己的静态文本控件. 其实设置背景透明,也就是在C ...
- android动态增加控件时控制样式的方法
在学习android的动画时,发现所谓的tween动画只是改变绘制效果并不改变原控件的位置时是颇为失望的,虽然3.0之后已经有了property animation,但是由于要兼容老版本的androi ...
- C#如何解决对ListView控件更新以及更新时界面闪烁问题
第一个问题:如何更新ListView控件内容 很多时候运行窗体程序时,由于程序中使用了多线程加之操作不当,所以在对控件操作时会出现下面这样的异常: 这是因为我们在窗体中添加的控件都有属于自己的线程 ...
- WinForm时间选择控件(DateTimePicker)如何选择(显示)时分秒
C# Windows窗体应用中,用到时间选择控件DateTimePicker,发现不能选择时分秒,难道要自己写一个控件?! 答案是否定的,通过属性修改是可以选择时间的,DateTimePicker完全 ...
- C#导出 Excel 时, 生成 CheckBox 控件
在使用 Microsoft.Office.Interop.Excel 组件导出Excel 表格时,要把导出前的 CheckBox 控件一同导出到 excel 表格中,对于这个功能 看似很简单,但 M ...
随机推荐
- Redis 集群的安装
Redis 集群介绍.特性.规范等Redis 集群的安装(Redis3.0.3 + CentOS6.6_x64)要让 Redis3.0 集群正常工作至少需要 3 个 Master 节点,要想实现高可用 ...
- laravel之知识点
- 样式布局与 BFC
一.几类视图 内联视图:inline 单行 块级视图:block 换行,有高度 行内块级视图:inline-block 单行,有高度 二.几类布局 块级布局 换行,通过设置 margin 水平居中 & ...
- 接口自动化集成到jenkins(Java+testng+maven+git)
一jenkins启动命令:jenkins 查看端口号: 1.lsof -i:端口号 2.netstat -tunlp|grep 端口号 二: 登录:http://localhost:8080 输入:u ...
- 大数相加 Big Num
代码: #include<stdio.h>#include<algorithm>#include<iostream>#include<string.h> ...
- CentOS6 网络设置
由于CentOS 6默认开启了arpcheck所以在配置网卡的时候需要关闭,否则导致网络服务启动失败 [root@Mysql ~]# vi /etc/sysconfig/network-scripts ...
- 记一次通过c#运用GraphQL调用Github api
阅读目录 GraphQL是什么 .net下如何运用GraphQL 运用GraphQL调用Github api 结语 一.Graphql是什么 最近在折腾使用Github api做个微信小程序练练手,本 ...
- MySQL InnoDB 备份与恢复七种方式
有几种方式: 1 mysqldump, 这种方式不仅适用于InnoDB,还适用于其它类型的存储引擎,如MyISAM.备份的时候将数据库备份成SQL(包含drop,create,insert等语句),恢 ...
- App功能测试
App功能测试 1. 运行 1)App安装完成后的试运行,可正常打开软件. 2)App打开测试,是否有加载状态进度提示. 3)App页面间的切换是否流畅,逻辑是否正确. 4)注册 同表单编辑页面 用 ...
- InputStream和Reader,FileInputStream和 FileReader的区别
一.InputStream和Reader的区别 InputStream和Reader都可以用来读数据(从文件中读取数据或从Socket中读取数据),最主要的区别如下: InputStream用来读取二 ...