我有一個按鈕命名爲bExecute
和它的Click
事件處理程序有此體:metro應用UI ProgressRing不更新和UI掛起
try
{
// Activate the progress ring
prProgress.Visibility = Visibility.Visible;
prProgress.IsActive = true;
bExecute.IsEnabled = false;
// Some Task
DoTask();
}
catch(Exception ex)
{
// Do Something
}
finally
{
// Stop the progress ring
prProgress.Visibility = Visibility.Collapsed;
prProgress.IsActive = false;
bExecute.IsEnabled = true;
}
這種方法有以下問題:
- 的UI似乎掛起直到任務完成,然後按照 恢復正常。
- ProgressRing從未出現被激活。
- bExecute按鈕從未顯示爲啓用/禁用。
我可以在Task.Run()
方法包裝DoExecute()
,這釋放了UI,但你永遠也看不到ProgressRing
和你也不看bExecute
被啓用/禁用。
有什麼建議嗎?
完美!我很親密。非常感謝! :) – c0D3l0g1c 2013-05-04 18:56:34