我无法为我的生活获得以下功能:
或者更简单:
步骤2发生在步骤1和3之前,无论代码在何处,因为UI在逻辑完成之前不会更新(我假设)。
我通过使用INotifyPropertyChanged进行数据绑定来设置图像的可见性。除非我试图引入暂停,否则所有工作都按预期工作。
我试图用这个简单的方法暂停:
private void Pause()
{
new System.Threading.ManualResetEvent(false).WaitOne(1000);
}
它确实暂停,但UI更改等到暂停之后,即使在调用暂停之前发生对绑定数据的更改,而另一个更改之后也是如此。
我尝试过使用调度程序,但它没有改变任何东西,我也不太了解它:
await dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
{
clickedCard.IsFaceDown = false; // makes the image visible via data binding
}
);
Pause();
我认为我需要对线程做一些事情,但我是在圈子里。 有什么想法吗?
答案 0 :(得分:1)
你绝不应该在你的应用的UI线程中做这样的事情:
new System.Threading.ManualResetEvent(false).WaitOne(1000);
有多种原因没有这样做,但在您的特定情况下,问题是XAML仅在事件处理程序完成后重新绘制。所以基本上会发生这种情况:
invisible
visible
(,但用户界面尚未刷新)invisible
invisible
)更新我建议你看看建立一个Storyboard
来做这件事 - Blend可以提供帮助。 See here