我有一个带有公共DownloadAsync方法的类,它通过Webclient下载内容。我创建该类的Object并调用下载方法。
我的问题是:我想阻止UI上的元素(例如按钮),直到下载完成。到目前为止我找不到任何解决方案。
一个想法是:我可以使用Downloadcomplete方法中的“下载完成”之类的消息调用MessageBox,并以某种方式调用MessageBox的Eventhandler。但是如何?
知道如何解决我的问题吗?
编辑:我知道热门禁用了Elements,但由于下载方法中的异步下载,我不知道下载何时结束才能启用元素答案 0 :(得分:1)
向您的数据类添加一个事件,并在下载完成后触发事件处理程序。
然后在你的页面中在你的初始化程序中执行类似的操作
BusyMessage.Visibility = Visibility.Visible;
this.DataContext = MYDownloaderClass.downloadedData;
MyDownloaderClass.hasFinished += new EventHandler(hasFinished);
}
void hasFinished(object sender, EventArgs e){
BusyMessage.Visibility = Visibility.Collapsed
}
答案 1 :(得分:0)
你应该只是禁用所有元素 - 在按钮等上将IsEnabled设置为false。如果你想要一个快速而肮脏的解决方案 - 你可以用一个矩形,边框,网格或弹出窗口覆盖屏幕。
答案 2 :(得分:0)