2014-08-30 98 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