在MainWindow外部调用richtextbox

时间:2014-02-28 03:47:20

标签: c# wpf richtextbox

public class ThreadExample
    {
        FlowDocument mcFlowDoc = new FlowDocument();
        Paragraph para = new Paragraph();
        public static void ThreadJob(MainWindow mainWindow)
        {
             mainWindow.richtextbox2.Document.Blocks.Add(new Paragraph(new Run(Text)));
        }

    }

您好。我有这段代码。它位于我的主窗口代码之外。我想要的是我会要求我的richtextbox根据我的需要显示一些东西。

为什么当我运行它时,会弹出一个异常,调用线程无法访问此对象,因为另一个线程拥有它。我怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

您正在将MainWindow的实例传递给静态方法。假设RichTextBox位于MainWindow,请使用该引用:

public static void ThreadJob(MainWindow mainWindow)
{
    mainWindow.Dispatcher.Invoke(DispatcherPriority.Normal,
        new Action(() => mainWindow.richtextbox2.Document.Blocks.Add(new Paragraph(new Run(Text)))));
}