我拔出頭髮試圖弄清楚爲什麼正常的Dispatcher.Invoke命令不能重繪我的窗口,但現在我問題似乎是相關的到被禁用的內容。我正在使用Dotnet 4.0完整框架。我如何強制禁用元素的WPF窗口/控件刷新
如果我使用
private void DoSomething()
{
HandleBusyEnableDisable(false);
DoSomethingThatKeepsItBusy();
HandleBusyEnableDisable(true);
}
private void HandleBusyEnableDisable(bool enabling)
{
Cursor = enabling ? Cursors.Arrow : Cursors.Wait;
CanvasFunctions.IsEnabled = enabling;
CanvasRight.IsEnabled = enabling;
CanvasRight.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Render, EmptyDelegate);
我看到光標變化,但內容看起來並不禁止。如果我加
CanvasRight.Opacity = enabling ? 1 : .5;
那麼我認爲它的工作,有時。有什麼我可以做的嗎?
正在運行的任務正在驗證用戶輸入的數據,因此它更容易在GUI線程上運行。這應該不那麼難。
不應該是''而不是''? –
2012-11-19 13:50:50