首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整窗体大小的.NET PowerPacks RectangleShape闪烁

调整窗体大小的.NET PowerPacks RectangleShape闪烁
EN

Stack Overflow用户
提问于 2011-07-05 16:39:11
回答 2查看 995关注 0票数 0

我可以做一些简单的事情,比如:

  1. 创建一个新的.NET表单应用程序
  2. 将一个RectangleShape放到表单上
  3. 将以下内容添加到设计器代码中的InitializeComponent方法中 Me.SetStyle(ControlStyles.AllPaintingInWmPaint或_ ControlStyles.UserPaint或_ ControlStyles.DoubleBuffer,True) Me.UpdateStyles()
  4. 运行程序
  5. 调整窗体的大小
  6. 愤怒地看着长方形闪烁

有可能摆脱这个吗?或者ShapeContainer内部存在缺陷,我需要找到一个不同的解决方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-05 17:06:49

这是相当有缺陷的。它使用自己的窗口,该窗口是在打开WS_EX_TRANSPARENT样式时覆盖到窗体上的。这种风格使它看不见,但也防止任何形式的双重缓冲工作正常。双缓冲窗体没有影响,窗口错误.

否则,这是一种相当昂贵的绘制形状的方法。廉价和无闪烁的方法是在表单的e.Graphics.FillRectangle()覆盖或绘制事件处理程序中使用OnPaint()。

票数 2
EN

Stack Overflow用户

发布于 2011-07-05 16:43:45

我从来没有使用过ShapeContainer,但是当我做这样的定制图形时,我会为一个面板创建一个子类,并在子类的构造函数中将DoubleBuffered设置为true。

更具体的代码示例这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6585973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档