首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gui未更新

gui未更新
EN

Stack Overflow用户
提问于 2012-04-13 22:15:59
回答 2查看 138关注 0票数 1

我的kiosk应用程序遇到了以下问题:

我有一个窗户,上面有一些缩略图。当用户单击缩略图时,将显示另一个包含信息的窗口(docview),并在中心显示一个文档。

我想让docview立即可见,然后开始加载文档(文档加载需要1-3秒),然后将其添加到界面中。

在我点击拇指的那一刻,界面冻结了一两秒钟,然后docview已经在文档中可见了。

这就是我要做的:

代码语言:javascript
复制
        viewgrid.Children.Add(docView); // the main window uses this grid to display the windows
        viewgrid.InvalidateVisual();
        viewgrid.UpdateLayout(); // at this point I would like to have the docView visible
        docView.showDocument(); //and afterwards, the loading of the document should start and be also visible eventually..

我尝试在没有success..Also的情况下使用LayoutUpdated事件,将showDocument放在单独的线程中也无济于事。我也读到过Application.DoEvents(),但它已被弃用,而且似乎是一种糟糕的做法。

我该如何解决这个问题?

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-13 23:25:46

您需要使用BackgroundWorker对象来加载文档。您说您尝试过线程,但它不起作用,但您需要让线程工作,我建议您使用后台工作程序。http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker(v=vs.110).aspx

我不确定您加载的是哪种类型的文档,但是我使用如下所述的绑定加载了一个RichText文件:http://www.rhyous.com/2011/08/01/loading-a-richtextbox-from-an-rtf-file-using-binding-or-a-richtextfile-control/

只有在BackgroundWorker中加载文档时,才会执行相同的操作。加载文档后,更新绑定属性,UI也将更新。

票数 0
EN

Stack Overflow用户

发布于 2012-04-13 22:25:18

您可以尝试使用异步绑定。或者使用另一个线程和调度程序手动执行此操作。但这取决于你的ShowDocument在做什么,这是很慢的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10142510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档