我试图重写.NET Compact Framework中窗体的OnPaint事件。
到目前为止,我可以用渐变,圆angular矩形等来绘制控件,而这些控件通常不能用于常规控件。
但是,当我想要使控制无形时,我遇到了问题。 现在,我所做的是重新绘制除了那些看不见的控件之外的所有控件。 由于需要一点时间,所以会导致一些闪烁。
有谁知道Windows如何处理绘画“隐形”的控制? 或者你可以build议任何algorithm或方法如何实现这一点。
如何使用FileSystemWatcher监视新驱动器
win32 api是否过时了?
.Net中的asynchronous文件IO
无法强制Webbrowser控件使用当前版本的IE呈现
无法卸载MysqL连接器。净6.9.3,在MysqL.Web.v20.dll失败
System.Diagnostics.Process无法从Windows窗体应用程序中的映射驱动器启动文件
有一个编程方式,我可以挂钩到用户login和注销(Windows SBS 2003)的目标是简单的日志logging?
采用Windows媒体基础的H.264编码
NGEN显示返回在C#winforms中使用Process.Start()运行时,与高位CMD不同的结果
应该有几件事你正在做。
不要画在OnPaint的图形对象。 绘制到后台缓冲区,并在最后绘制到图形。
重写OnPaintBackground并让它什么都不做。
只允许改变的区域无效,而不是整个屏幕,尽可能保持剪切区域的小
如果您将单个控件更改为“不可见”,那么您将更改该控件,并使其无效。 在OnPaint您将执行绘图,省略基于Visibility属性的“不可见”控件。 只有裁剪区域会被更新。 您甚至可以通过检查OnPaint上的传入剪辑区域来进一步进行操作,并且只会困扰绘制逻辑绘制该区域。 虽然这有点复杂,但往往不是必需的。
作为替代,是否可以在适当的控件上调用Invalidate()方法的重载,以减少需要重绘的控件的总数量?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。