Winform 控件截图

问题描述

控件截图如何不包含子控件?Control.DrawToBitmap会把子控件的也包含了。怎么只获取父控件部分?

解决方案

解决方案二:
new一个相同大小和相同属性的对应控件,用这个控件截图
解决方案三:
截图前将所有子控件visible全部设为false,截完再设回来
解决方案四:
引用2楼yuwenge的回复:

截图前将所有子控件visible全部设为false,截完再设回来

这样的话显示效果就不好了
解决方案五:
你parent上有什么,如果控件都不截图,那不就是块白板吗
解决方案六:
引用4楼bdmh的回复:

你parent上有什么,如果控件都不截图,那不就是块白板吗

Parent上有地图,有子控件在地图上显示,子控件是透明的,有背景图
解决方案七:
如果你就是想要背景图,直接输出背景图片不行?
解决方案八:
引用6楼Z65443344的回复:

如果你就是想要背景图,直接输出背景图片不行?

我要的是父控件的地图截图
解决方案九:
引用3楼fengwuji256的回复:

Quote: 引用2楼yuwenge的回复:
截图前将所有子控件visible全部设为false,截完再设回来

这样的话显示效果就不好了

你没有试过怎么知道效果不好呢,大不了截图的时候跑一个loading界面好了。如果子控件不是特别多的话,用户根本不会有感觉。
解决方案十:
子控件先不隐藏,当截图区域选定后,隐藏子控件,截图完成后显示子控件,界面效果无非就闪烁一下,
解决方案十一:
你可以把父控件的地图(背景图片)转image,然后在内存里按截图选定区域进行裁切而不是直接在显示的控件上截图

时间: 2024-09-30 18:18:13

Winform 控件截图的相关文章

在IE中使用VS.net WinForm控件

控件 在Visual Studio .net中,类似于Applet或ActiveX控件,WinForm控件可以嵌入IE中使用.嵌入IE的Windows窗体控件不要求注册,不需用户提示即可激活.我们可以很方便地实现一些WebForm中实现起来相对麻烦的交互操作,结合.net Remoting等技术访问后台数据库,则可生成功能强大而且美观的WebForm页面. 使用该技术,需要客户端安装.net FrameWork及IE 6.0,在Windows 2003中已经自带了.net FrameWork.

c#扩展方法奇思妙用高级篇六:WinForm控件选择器

我们先看几个类图,深入认识一下我们常用的WinForm控件: 图1 ScrollableControl类图 图2 ButtonBase类图 图3 TextBoxBase类图 图4 ListControl类图 图5 Label类图 图6 其它常用 从图1中可以看出,Form与Button.Label一样,也是一个Control.

WinForm控件开发总结系列文章目录

WinForm控件开发总结(十二) 让控件处理导航键 WinForm控件开发总结(十一) 调试控件的设计时行为 WinForm控件开发总结(十) 为属性设置默认值 WinForm控件开发总结(九) 为属性提下拉式属性编辑器 WinForm控件开发总结(七) 为复杂属性的子属性提供编辑功能 WinForm控件开发总结(八) 为属性提供弹出式编辑对话框 WinForm控件开发总结(六) 控件属性类型转换器代码详解 WinForm控件开发总结(五) 为控件的复杂属性提供类型转换器 WinForm控件开

WinForm控件开发总结(十二) 让控件处理导航键

最近真的真的太忙了,以至于一个多月都没哟更新我的blog.昨天晚上,一个网上的朋友看了我的 ToolBox的文章,问我一个问题,他说如何让ToolBox控件也能响应键盘操作,也就是用Up,down按键来选 择工具箱控件里的Item,他添加了键盘事件,但是不起作用.一开始做这个控件的时候也只是演示一下控 件的制作过程,只用了很短的时间做了一个,只考虑了用鼠标选取,没有考虑键盘操作,我想要添加键盘 操作无非重载KeyDown事件,针对Up,Down做一些响应就可以了.可是添加了重载了OnKeyDow

WinForm控件开发总结(十) 为属性设置默认值

本系列的前面几篇文章讲解了如何来定义属性以及更有效的编辑属性,接下来我要讲一下控件属性的默 认值.如果我们希望自己开发的控件更易于被其它开发者使用,那么提供默认值是非常值得的. 如果你为属性设定了默认值,那么当开发者修改了属性的值,这个值在Property Explorer中将会以粗 体显示.VS为属性提供一个上下文菜单,允许程序员使用控件把值重置为默认值.当VS进行控件的串行化 时,他会判断那些值不是默认值,只有不是默认值的属性才会被串行化,所以为属性提供默认值时可以大 大减少串行化的属性数目

WinForm控件开发总结(七) 为复杂属性的子属性提供编辑功能

前面的几篇文章中,我们给控件添加一个复杂的类型Scope,并且给它的类型提供的一个类型转换器, 现在我们可以在属性浏览器中编辑它的值,并且它的值也被串行化的源代码里了.但是你有没有发现,在 属性浏览器里编辑这个属性的值还是不太方便.因为属性只是"10,200"这种形式的,所以,你必须按 照这种格式来修改,一旦格式错误就会引发异常,比如输入一个"10200".我们期望这个属性的每一子 属性都能够被独立的编辑就好了,这并非不能实现,而且实现还很简单. 为了在属性浏览器里

WinForm控件开发总结(五) 为控件的复杂属性提供类型转换器

上一篇文章我已经介绍了TypeConverterAttribute元数据的作用,本文将通过代码向你展示具体的实 现.在这个例子中,我要给控件添加一个复杂的属性,这个属性对这个控件没有什么功用,纯粹是为了演 示,有些牵强附会了. 现在在前一篇文章中的创建的控件代码中添加一个Scope属性: [Browsable(true)] public Scope Scope { get { return _scope; } set { _scope = value; } } 这个属性的类型是Scope类,代码

WinForm控件开发总结(四) 控件属性的串行化

前一篇文章介绍了常用的设计时Attribute.其中BrowsableAttribute,CategoryAttribute, DescriptionAttribute,DefaultPropertyAttribute,DefaultEventAttribute都是比较简单的,也是可 有可无,但是为了提供更好的用户体验这些Attribute最好不要省掉,如果你对这些Attribute还不熟悉, 可以参考我前一篇文章的描述或者查看MSDN,这里我就不在赘述了. 下来我们主要介绍一下Designer

WinForm控件开发总结(三) 认识WinForm控件常用的Attribute

在前面的文章里我们制作了一个非常简单的控件.现在我们回过头来看看这些代码透露出什么信息. 这个类是直接从Control类派生出来的,自定义控件都是直接从Control类派生出来的.这个类定义了 一个属性TextAlignment,用来控制文本在控件中显示的位置: [ Category("Alignment"), Description("Specifies the alignment of text.") ] public ContentAlignment Text