Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 在等待usercontrol初始化时显示忙指示灯_Wpf_Multithreading_User Controls_Initialization_Indicator - Fatal编程技术网

Wpf 在等待usercontrol初始化时显示忙指示灯

Wpf 在等待usercontrol初始化时显示忙指示灯,wpf,multithreading,user-controls,initialization,indicator,Wpf,Multithreading,User Controls,Initialization,Indicator,我的应用程序需要在启动时在主窗口中加载usercontrol。 但是,usercontrol的初始化速度很慢。(不是因为加载业务数据,我已经将UI与业务层分离) 我想做的是,在等待usercontrol的初始化时,会出现一个busy指示器,当usercontrol的初始化完成时,该指示器将消失 现在,我在MainViewModel中有一个IsBusy属性,并且在Main窗口中数据绑定到busyindicator。 子用户控件通过contentcontrol显示 但是,如何同时运行初始化和忙

我的应用程序需要在启动时在主窗口中加载usercontrol。 但是,usercontrol的初始化速度很慢。(不是因为加载业务数据,我已经将UI与业务层分离)

我想做的是,在等待usercontrol的初始化时,会出现一个busy指示器,当usercontrol的初始化完成时,该指示器将消失

现在,我在MainViewModel中有一个IsBusy属性,并且在Main窗口中数据绑定到busyindicator。 子用户控件通过contentcontrol显示

但是,如何同时运行初始化和忙指示灯显示?似乎我需要不同的线程来处理这个问题

但是,在另一个线程上运行初始化,同时让主UI线程显示忙碌指示器将不起作用,因为另一个线程中的子控件不能放在其父控件(在本例中为MainWindow)中


有什么想法吗

如何显示动画加载光标?Windows已经在鼠标上处理线程。我以前遇到过这个问题,我在另一个线程上实现了我自己的加载动画,但是我在渲染优先级方面遇到了问题,这导致主执行代码速度变慢,除非鼠标光标移动到进度对话框的顶部

我自己已经实现了它。也就是说,在我的场景中,我们加载了XPS文档(速度非常慢),然后我必须实现spinner(“繁忙指示器”)。但这不起作用,因为他们在同一条线上

现在,德韦恩想出了一个聪明的方法来处理这个问题,并且成功了。

不错!这完全符合我的目的!
presenter.Content = new ChildUserControl(); 
//presenter is the contentcontrol in MainWindow