我在下面的代码中点击按钮时会调用此代码。现在,由于它使用Telnet而且我不得不添加一堆Thread.Sleep(),这个方法需要5-7秒才能执行。
我想知道是否有一种方法可以在此次运行的同时获得进度条的动画,让用户知道一切都很好。
感谢。
private void rack_Click(object sender, RoutedEventArgs e)
{
progressBar.IsIndeterminate = true;
// Extrait le nom du rack sélectionné
selectedRack = (sender as Button).Content.ToString().ToLower();
// Console Update
console.Text += "Connexion en cours...";
// Ouvre la connection au PDU
clientPDU = this.getConnectionPDU();
// S'assure que la connection fut éffectué correctement
if (clientPDU != null)
{
// Disable les autres racks
for (int i = 65; i < 71; i++)
{
Button btn = (Button)FindName("rack_" + ((char)i));
if (btn.Content.ToString().ToLower() != selectedRack)
btn.IsEnabled = false;
}
// Active Rafraichir et Déconnecter
refresh.IsEnabled = true;
disconnect.IsEnabled = true;
// Console Update
console.Text += "\nConnexion établie";
// Mettre à jour les Port qui sont ouvert/fermé
this.getPortStatus();
// Active les boutons en correspondance à ce qui est On et Off
this.setButtonStatus();
}
else
{
// Console Update
console.Text += "\n\nConnexion Impossible. Veuillez réessayer...\n";
}
// Scroll to end
scroller.ScrollToEnd();
progressBar.IsIndeterminate = false;
}
答案 0 :(得分:0)
您需要将IsIndeterminate属性设置为false,并在整个操作中指定进度条的值,以便提供进度条的动画。:
progressBar.IsIndeterminate = false;
// set the maximum for the progressBar
progressBar.Maximum = 100;
// do work and increment value
progressBar.Value++;
以下页面有一个ProgressBar的示例,其中IsIndeterminate属性设置为true,以及动画的外观图片(它不提供真实的用户反馈)。该页面还有一个IsIndeterminate设置为false的示例,但必须指定值。在此示例中,工作在单独的线程上完成,以便在执行工作时允许UI交互。
http://www.wpf-tutorial.com/misc-controls/the-progressbar-control/