问题标签 [doublebuffered]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
69544 浏览

c# - 如何在表单上加倍缓冲 .NET 控件?

如何DoubleBuffered在出现闪烁的表单上设置控件的受保护属性?

0 投票
1 回答
3021 浏览

c# - 自定义控件中的双缓冲子控件 (C#)

我想双缓冲一个包含按钮的自定义控件。我尝试了各种方法来双重缓冲控件;SetStyle、BufferedGraphicsContext 和绘制到位图。这些都适用于控件的自定义绘图,但它们都不能处理将按钮绘制到后台缓冲区。我如何实现这一目标?

0 投票
4 回答
7973 浏览

c# - 进行无闪烁动画 C# 自定义控件的最佳方法是什么?

我目前正在创建一个需要在 C# 项目中处理动画的自定义控件。它基本上是一个列表框,其中包含固定数量的可以移动的元素。一个元素(另一个带有背景图像和几个生成标签的用户控件)可以向上、向下移动或从列表中取出。

我想创建动画运动,因为元素在容器自定义控件中四处移动,但在我看来,使用线条移动控件,例如

在计时器事件中触发是闪烁的并且具有糟糕的渲染,即使打开了双缓冲也是如此。

那么问题来了:实现无闪烁动画 C# 控件的最佳方法是什么?我是否应该不创建自定义控件并处理我生成的面板背景图像中的所有绘图?有没有我没发现的超级动画方法?:)

谢谢!

0 投票
3 回答
27651 浏览

c# - 如何使用 C#(Windows 窗体)启用控件的双缓冲?

如何使用 C#(Windows 窗体)启用控件的双缓冲?

我有一个面板控件,我正在向其中绘制内容,还有一个所有者绘制的选项卡控件。两者都有闪烁,那么如何启用双缓冲?

0 投票
6 回答
4601 浏览

c# - 派生的所有者绘制的 TabControl 的双缓冲问题?

我已经派生了一个 TabControl,其明确目的是启用双缓冲,除了没有按预期工作。这是 TabControl 代码:

然后将此 Tabcontrol 的绘制模式设置为“OwnerDrawnFixed”,以便我可以更改颜色。这是自定义绘图方法:

然而,一切都无济于事,因为这个控件不是双缓冲的,并且在调整大小时仍然会闪烁。

有任何想法吗?

0 投票
4 回答
21002 浏览

.net - 为什么 DataGridView 上的 DoubleBuffered 属性默认为 false,为什么它受到保护?

我们遇到了 DataGridViews 的性能问题,其中重绘速度非常慢,并在此处找到了解决方案来创建派生类型并在控件上启用双缓冲。(派生类型是必需的,因为 DoubleBuffered 属性受到保护)

将 DoubleBuffered 属性设置为 true 似乎没有任何缺点。

0 投票
4 回答
4137 浏览

winforms - 启用双缓冲

我已经看到以下代码在 winform 上启用双缓冲:

这与简单地设置 Form.DoubleBuffering = true 有什么不同吗?

0 投票
5 回答
3221 浏览

c# - 在双缓冲控件上重新绘制图像而不闪烁的问题

我知道双缓冲是一个经常被谈论的主题,但无论我如何搜索和尝试不同的方法,我仍然无法让控件在没有闪烁的情况下重新绘制自身。这是我的代码:

有任何想法吗?

0 投票
1 回答
4654 浏览

c# - c# CF、WinForms 和双缓冲

我在表单上有一个带有 PictureBox 的 CF 2.0 应用程序。我想通过鼠标移动来移动 PictureBox,我需要在表单中添加双缓冲区以避免闪烁。

我怎样才能做到这一点?

谢谢!

0 投票
1 回答
3874 浏览

python - 使用 wxpython 进行双缓冲

我正在使用 wxpython 开发一个多平台应用程序,在面板上绘图时,我在 Windows 上遇到了闪烁问题。我曾经在鼠标运动事件期间在缓冲区(wx.Bitmap)上绘制,而我的 OnPaint 方法仅由在线组成:

相当标准,但我在 Windows 上仍然有闪烁的问题,而在 Linux 上一切正常。

解决了我SetDoubleBuffered(True)在方法中调用的问题__init__

奇怪的是,即使我不再使用 BufferedPaintDC,现在一切正常。我更改了我的应用程序,以便所有绘图部分都在 OnPaint 方法中完成。我不使用缓冲区,直接在 wx.PaintDC 上完成绘图,完全没有闪烁问题。

所以我的问题是:BufferedPaintDC 完全没用吗?还是以某种方式弃用?我是“WxPython in Action”(2006 年)一书的所有者,它甚至没有提到 SetDoubleBuffered