wpf 怎么调用子线程窗口的方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf 怎么调用子线程窗口的方法?相关的知识,希望对你有一定的参考价值。

public Thread newWindowThread;

public MaskLayer()

InitializeComponent();
newWindowThread = new Thread(new ThreadStart(ThreadStartingPoint));
newWindowThread.SetApartmentState(ApartmentState.STA);
newWindowThread.IsBackground = true;
newWindowThread.Start();


public void ThreadStartingPoint()

LoadingWin loadingWin = new LoadingWin();
loadingWin.Show();
Dispatcher.Run();


我这样开启了一个新的线程,开启一个类似进度条的窗体,我怎么能让我的主线程的窗体响应Activated事件时,触发一下loadingWin的Activate()方法?

拿到loadWin的Dispatcher
loadWin.Dispatcher.BeginInvoke(new Action(()=>loadWin.Activate()));

楼主的想法,应该是想让LoadWin一直在主窗口之前当着吧?
不过不知道为什么要另外开一个线程呢?
直接在当前UI线程new一个LoadWin,然后将loadWin的Owner设置成主窗口就行了
参考技术A 建议你到 http://bbs.silverlightchina.net/ 这里提问

WPF中从一个窗口调用另一个窗口(或page)的函数

求大神帮写下代码

参考技术A page.show
或者window.show
参考技术B 告诉你个简单的方法,把另一个窗口的函数写成静态的。本回答被提问者采纳

以上是关于wpf 怎么调用子线程窗口的方法?的主要内容,如果未能解决你的问题,请参考以下文章

主线程怎么给子线程发送消息

QT中想在子线程中创建对话窗口怎么建

WPF Dispatcher.BeginInvoke子线程更新UI

在 WPF 的子线程中捕获未处理的异常

QT中UI主窗口如何与子线程相互传递参数

android创建子线程