从Windows窗体应用程序打开另一个线程中的WPF窗口,可以通过以下步骤实现:
Thread wpfThread = new Thread(() =>
{
SynchronizationContext.SetSynchronizationContext(new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher));
var wpfWindow = new MyWPFWindow();
wpfWindow.Show();
Dispatcher.Run();
});
wpfThread.SetApartmentState(ApartmentState.STA);
wpfThread.IsBackground = true;
wpfThread.Start();
private void Window_Closed(object sender, EventArgs e)
{
Dispatcher.ExitAllFrames();
}
wpfWindow.Dispatcher.Invoke(() =>
{
// 在WPF窗口的线程中执行操作
});
通过以上步骤,可以实现从Windows窗体应用程序打开另一个线程中的WPF窗口,并在两者之间进行线程间通信。
领取专属 10元无门槛券
手把手带您无忧上云