2014-08-30 94 views
0

在我的XAML中,有一个按钮和一个标签。在启动时,该按钮是可见的,标签不可见。当点击install_btn时,标签应该变为可见而不是按钮。 下面的代码的一部分:可见性切换

private void install_btn_Click(object sender, RoutedEventArgs e) 
{ 
    inst_label.Visibility = Visibility.Visible; 
    progress.Visibility = Visibility.Visible; 
    install_btn.Visibility = Visibility.Hidden; 
} 

再有就是像webClient.DownloadFile()一些代码。但只有在处理webClient后才能切换可见性。如何在下载文件(或其他内容)之前执行切换?

+0

你必须向我们展示更多的代码。什么是这个webclient.DownloadFile部分缺少的代码? – 2014-08-30 09:33:21

+2

不要在UI线程上下载,你的应用程序会看起来很大。将下载移至单独的线程(最好使用任务,因为代码将最简单)。 – Athari 2014-08-30 10:17:03

回答

-1

您应该允许更新它的应用程序的UI:

private void install_btn_Click(object sender, RoutedEventArgs e) 
{ 
    inst_label.Visibility = Visibility.Visible; 
    progress.Visibility = Visibility.Visible; 
    install_btn.Visibility = Visibility.Hidden; 
    Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate { })); 
    webClient.DownloadFile(); 
} 
+0

非常感谢,老兄! – MullinsMikey 2014-08-30 10:58:10

+0

您应该改为使文件下载异步完成。改为使用'webClient.DownloadFileAsync'。使用调度程序更新UI是一个可怕的想法。 – 2014-09-01 03:47:15