【发布时间】:2011-11-14 21:50:31
【问题描述】:
当你有一个按钮,然后做这样的事情:
Private Function Button_OnClick
Button.Enabled = False
[LONG OPERATION]
End Function
然后按钮不会变灰,因为长操作会阻止UI线程重新绘制控件。我知道正确的设计是启动后台线程/调度程序,但有时这对于简单的操作来说太麻烦了。
那么如何强制按钮在禁用状态下重绘?我在 Button 上尝试了 .UpdateLayout() ,但没有任何效果。我还尝试了 System.Windows.Forms.DoEvents(),它在使用 WinForms 时通常可以工作,但它也没有效果。
【问题讨论】:
标签: wpf user-interface dispatcher ui-thread