0
我不能爲我的生命得到了以下功能工作:在WinRT中暫停UI 8.1
- 用戶點擊項目
- 產品的圖像變成通過形象的改變visibility屬性
- 後可見時間圖像的短時間內通過改變 visibility屬性
或者,更簡單地再次變得不可見的(沒有用戶輸入):
- 使可見UI變化
- 暫停,以便用戶可以看到UI變化
- 反向步驟1的UI變化
步驟2步驟1和3之前發生不管在碼是因爲UI直到邏輯完成後纔會更新(我假設)。
我正在通過與INotifyPropertyChanged的數據綁定來設置圖像的可見性。除了當我試圖介紹暫停時,所有的工作都如預期。
我想用這個簡單的方法暫停:
private void Pause()
{
new System.Threading.ManualResetEvent(false).WaitOne(1000);
}
它不會暫停,但用戶界面的變化等,即使更改了綁定的數據發生befores暫停該暫停調用,直到後,另一個變化後。
我已經使用調度試過,但它不會改變任何東西,我也沒有足夠的理解:
await dispatcher.RunAsync(CoreDispatcherPriority.High,() =>
{
clickedCard.IsFaceDown = false; // makes the image visible via data binding
}
);
Pause();
我想我需要做什麼的線程,但我將在界。 任何想法?
謝謝,我預料會發生什麼事情。我可以創建一個故事板以逐漸淡出圖像,但我不知道如何使它在GridView中的項目上工作。我如何獲得已被點擊的gridview的「單元格」(與e.ClickedItem中的綁定數據相反)? 對於如此簡單的(和推測是常見的/基本的)需求,故事板看起來很複雜,因爲「經過一段時間後才做x」。 – pumpkinszwan 2015-02-25 02:52:11
另一種選擇是簡單地以非阻塞的方式延遲:使用'await Task.Delay(1000)'而不是睡眠。 – 2015-02-25 03:41:48
謝謝,彼得,這工作。我最初嘗試過Task.Delay,但是我一定有什麼錯誤,這導致我在錯誤的地方尋找答案! 我只是做了一切異步並在切換圖像可見性之前添加了Task.Delay。 – pumpkinszwan 2015-02-25 04:32:57