我拔出头发试图弄清楚为什么正常的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