コマンドウィンドウにテキストを印刷するコンソールアプリケーションがあるとします。 Logger WPFウィンドウもあり、出力を複製する必要があります。私は新しいスレッド(STA)の内部でウィンドウを作成するためのIDE力:スレッドが開始された後、私はtextBlock.TextにアクセスするにはどうすればよいコンソールアプリケーションからUI要素にアクセスする方法
public SomeClass()
{
var loggerThread = new Thread(() =>
{
var logWindow = new Window
{
Title = "Logger", Width = 100, Height = 100
};
var stackPanel = new StackPanel
{
Name = "stackPanel"
};
stackPanel.Children.Add(new TextBlock
{
Name = "textBlock", Text = "new text\n"
});
logWindow.Content = stackPanel;
logWindow.ShowDialog();
});
loggerThread.SetApartmentState(ApartmentState.STA);
loggerThread.IsBackground = true;
loggerThread.Start();
}
public void PutInfo(string msg)
{
// how to access textBlock here?
...textBlock.Text = "some info";
}
。 つまり、PutInfo()メソッドを介して別のクラスからそのスレッドのUI要素にアクセスする方法は?
検索を使用して、あなたが
Description
を変更するたびに制御を更新するために必要とされています。 ところで、これは、例えば、 http://stackoverflow.com/questions/11625208/accessing-ui-main-thread-safely-in-wpf – Andre