当SpellCheck Activated和ScrollBar可见时,RichTextBox闪烁

时间:2016-12-27 10:07:50

标签: c# wpf richtextbox spell-checking flicker

我的RichTextBox遇到了这个问题:如果我没有激活拼写检查器一切正常,如果我激活拼写检查器并且RichTextBox控件不需要滚动条,一切顺利,但如果我激活拼写检查器,当拼写错误的下划线开始时,文本开始闪烁时需要滚动条。

我已经阅读了很多关于DoubleBuffered属性但我无法在RichtextBox中访问它,即使我尝试了:

public static void SetDoubleBuffered(RichTextBoxcontrol)
{

  // set instance non-public property with name "DoubleBuffered" to true
  typeof(RichTextBox).InvokeMember("DoubleBuffered",
      BindingFlags.SetProperty | BindingFlags.Instance | BindingFlags.NonPublic,
      null, control, new object[] { true });
}

我也试过访问CreateParams,但我的控件是在System.Windows.Controls.Page中,并且没有CreateParams属性:

protected override CreateParams CreateParams
{  
    get

    {
        if (originalExStyle == -1)
            originalExStyle = base.CreateParams.ExStyle;

        CreateParams cp = base.CreateParams;
        if (enableFormLevelDoubleBuffering)
            cp.ExStyle |= 0x02000000;   // WS_EX_COMPOSITED
        else
            cp.ExStyle = originalExStyle;

        return cp;
    }
}

有没有人知道如何解决闪烁问题?

谢谢!

0 个答案:

没有答案