标签: flicker

TLabel和TGroupbox Captions在调整大小时闪烁

  • 所以,我有一个应用程序加载不同的插件,并在TPageControl上为每个插件创建一个新选项卡.
  • 每个DLL都有一个与之关联的TForm.
  • 使用父hWnd创建表单作为新的TTabSheet.
  • 由于就VCL而言,TTabSheets不是表单的父级(不想使用动态RTL和其他语言的插件),我必须手动处理调整大小.我这样做如下:

    var
      ChildHandle : DWORD;
    begin
      If Assigned(pcMain.ActivePage) Then
        begin
        ChildHandle := FindWindowEx(pcMain.ActivePage.Handle, 0, 'TfrmPluginForm', nil);
        If ChildHandle > 0 Then
          begin
          SetWindowPos(ChildHandle, 0, 0, 0, pcMain.ActivePage.Width, pcMain.ActivePage.Height, SWP_NOZORDER + SWP_NOACTIVATE + SWP_NOCOPYBITS);
        end;
      end;
    
    Run Code Online (Sandbox Code Playgroud)

现在,我的问题是当应用程序调整大小时,TGroupBox中的所有TGroupBox和TLabel都会闪烁.不在TGroupboxes内的TLabel很好,不会闪烁.

我试过的事情:

  • WM_SETREDRAW后跟一个RedrawWindow
  • TGroupBoxes和TLabels上的ParentBackground设置为False
  • DoubleBuffer:= True
  • LockWindowUpdate(是的,即使我知道这是非常错的)
  • 透明:= False(甚至覆盖create来编辑ControlState)

有任何想法吗?

delphi groupbox flicker tpagecontrol delphi-xe

21
推荐指数
2
解决办法
7247
查看次数

如何防止Windows窗体TextBox在调整大小时闪烁?

有很多文章解决Windows窗体中的闪烁问题.大多数人建议设置DoubleBuffered = true或设置一堆ControlStyle标志.但是,这些都不能帮助减少TextBox闪烁.

以下是一些相关问题:

要重现该问题,请创建一个新的WinForms项目,添加一个TextBox,启用多行,禁用自动换行,添加一堆文本,设置Anchor为Left + Right + Top + Bottom.现在运行并调整大小.文字闪烁.对于几个嵌套TableLayoutPanels中的文本框,调整大小时的闪烁更糟.

应用上述问题中提出的解决方案最好不要修复闪烁; 如果我得到实验并设置受保护ControlStyle,TextBox我可以完全打破它(通过启用UserPaint),但不能消除闪烁.

那么,有没有办法解决TextBox中文本的闪烁问题?

.net flicker winforms

17
推荐指数
2
解决办法
1万
查看次数

更新期间停止TextBox闪烁

我的WinForms应用程序有一个TextBox,我将其用作日志文件.我正在附加没有使用闪烁形式的文本TextBox.AppendText(string);,但是当我尝试清除旧文本时(因为控件的.Text属性达到.MaxLength限制),我得到了可怕的闪烁.

我正在使用的代码如下:

public static void AddTextToConsoleThreadSafe(TextBox textBox, string text)
{
    if (textBox.InvokeRequired)
    {
        textBox.Invoke(new AddTextToConsoleThreadSafeDelegate(AddTextToConsoleThreadSafe), new object[] { textBox, text });
    }
    else
    {
        // Ensure that text is purged from the top of the textbox
        // if the amount of text in the box is approaching the
        // MaxLength property of the control

        if (textBox.Text.Length + text.Length > textBox.MaxLength)
        {
            int cr = textBox.Text.IndexOf("\r\n");
            if (cr > 0)
            {
                textBox.Select(0, cr + 1);
                textBox.SelectedText = string.Empty;
            } …
Run Code Online (Sandbox Code Playgroud)

c# textbox flicker winforms

14
推荐指数
3
解决办法
2万
查看次数

在FlowLayoutPanel滚动期间,背景扭曲+闪烁

我有一个具有背景的Windows窗体应用程序.在其中,我有一个透明背景的flowlayoutpanel.当我滚动时,会发生以下情况:

在此输入图像描述

我也看到一些闪烁.我已经尝试了所有的双缓冲​​业务,但它不起作用.

有什么建议?

c# scroll transparent flicker flowlayoutpanel

14
推荐指数
2
解决办法
7398
查看次数

WPF动画有撕裂和闪烁

我在WPF动画中撕裂和闪烁时遇到麻烦.我有一个玩具应用程序来演示这些问题.该应用程序在屏幕上设置了正方形动画.方块的边缘显示撕裂,整个动画感觉不平滑.

穿孔器显示> 60fps,~10mb视频内存,0 IRT.

我在两台新的高端计算机上尝试了这一点,并且都显示了相同的不良动画(> 1gb vram,quad core等).

SimpleWindow.zip

wpf animation flicker tearing

13
推荐指数
1
解决办法
3330
查看次数

IE中固定定位元素闪烁,如何解决?

IE11中的奇怪问题,当使用鼠标滚轮或光标键时,以下项目的固定背景会闪烁.肯定是这是一个错误.

网站:http://gerbrandy.zitemedia.nl:88 /

我使用脚本来调整背景比例,但这不是问题,因为滚动时resize事件不会触发,所以这不是脚本的问题.它与固定定位元素有关.在所有其他浏览器中,此脚本可以使用几年.

我不知道如何解决这个问题.尝试了几件事,但不知道如何禁用javascript例如但不应该是这种情况.我在Windows 8.1上使用IE11.

有人对此有相同的经验,你知道如何解决这个问题吗?

javascript css internet-explorer css-position flicker

13
推荐指数
4
解决办法
2万
查看次数

在ListView控件中闪烁(OwnerDraw,Virtual)

这个问题可能被视为使用ownerdraw和virtualmode在listview中闪烁的后续行动.

我有一个ListView控件Virtual mode,我尝试执行自定义绘图.项目渲染通过以下方法覆盖完成:

protected override void OnDrawItem(DrawListViewItemEventArgs eventArgs) 
Run Code Online (Sandbox Code Playgroud)

如引用的问题所述,自定义绘图会在鼠标悬停事件上引入闪烁.调试器告诉我这是由于过多的自定义绘制事件被触发而发生的.


现在 - 引用问题的接受答案告诉我们:

这是.NET的ListView中的一个错误,你不能通过双缓冲解决它.

  • 那么,这些信息有多可靠?这真的是个错误吗?或者我们可能只是试图切断部分消息并希望它不会改变可见行为?

  • 这是真的,如果我有我的所有者绘制例程ListViewin in Virtual Mode,我可以抑制这些Custom Draw事件并且只执行我的绘图WM_PAINT或者,也许,这在某些情况下是不正确的?

  • System.Windows.Forms控制能够在WM_PAINT不改变其初始行为的情况下完成所有绘画的前提条件是什么?

c# listview flicker ownerdrawn winforms

12
推荐指数
2
解决办法
6243
查看次数

使用chrome/safari影响其他元素的CSS3转换

我有一个问题,我的css3转换正在影响页面上的其他元素,甚至导致它们闪烁.我看到另一篇关于此的帖子,但他们没有解决这个问题.

http://scosha.mybigcommerce.com/w107b/当您滚动浏览导航时,您会看到动画css3转换.它在firefox中工作正常,没有闪烁但是使用chrome和safari,效果非常明显,你可以在下拉菜单项和页脚文本中看到它.

flicker css3 css-transitions css-transforms

12
推荐指数
3
解决办法
1万
查看次数

-webkit-backface-visibility的潜在魔力

我想知道为什么webkit-backface-visibility像那种通用的阿司匹林可以解决或加剧各种各样的异构问题,主要与工件和闪烁有关.

我已经阅读并理解了backface-visibility它的真正含义:当不面向屏幕时,它控制着三维旋转的物体.有一个不错的,简单明了的演示在这里

但我很好奇为什么,每次我在CSS世界中都有奇怪的故障,完全与3D旋转及其隐藏的背面无关,应用于backface-visibility有问题的层或其中一个祖先通常会帮助或使事情变得更糟,但很少会做任何事情.我在谈论类似的事情

  • 动画闪烁
  • 固定层Z-Index问题
  • 显示:无<>可见的闪烁和瑕疵
  • 滚动闪烁

有趣的是,总是在我简陋的经历中,backface-visibility:hidden倾向于解决固定定位相关的东西,并且backface-visibility:visible是闪烁的"最佳".同样有趣的是,在Chrome和Safari中,副作用是不同的,但男孩有!

我在一个Visual HTML创建者工作,所以情况是我有闪烁/工件是相当复杂的(即几个层上的动画,固定元素后面的滚动div,绝对超过z-index ....)

有人可以开导我吗?

css html5 webkit flicker css3

12
推荐指数
1
解决办法
3787
查看次数

如何避免WPF全屏应用中的闪烁?

我有一个WPF应用程序,它是一个全屏自助服务终端应用程序.它实际上是一个非常复杂的应用程序,但这里有一些显示基本概念的代码.基本上,每当用户从一个屏幕进入下一个屏幕时,就会出现一些严重的闪烁,从而打开新窗口.在严重的情况下,桌面会在新屏幕显示之前显示几秒钟.在这个示例代码中不会发生这种情况,因为它非常简单,但添加了一些按钮和样式,你会看到它.

App.xaml.cs:

public partial class App : Application {
    Manager mManager;
    public App() {
        mManager = new Manager();
        Window1 screen1 = new Window1(mManager);
        mManager.Screen1 = screen1;
        try {
            this.Run(screen1);
        } catch (Exception e) {
            System.Console.WriteLine(e.ToString());                
        } finally {
            Application.Current.Shutdown();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Window1.xaml.cs:

public partial class Window1 : Window {
    Manager Manager{get; set;}
    public Window1(Manager inManager) {
        InitializeComponent();
        Manager = inManager;
    }

    private void OnChangeScreen(object sender, RoutedEventArgs e) {
        Manager.OpenScreen2();
    }
}
Run Code Online (Sandbox Code Playgroud)

Window2.xaml.cs:

public partial class Window2 : Window { …
Run Code Online (Sandbox Code Playgroud)

.net wpf fullscreen flicker

11
推荐指数
1
解决办法
1万
查看次数