7

在 WPF / MVVM 应用程序中,我试图找到一种代码有效的方法来Cursors.Wait在任何冗长的操作之前将主视图光标设置为,并在完成后将其恢复为默认光标。

由于所有操作都是使用路由命令调用的,我想找到一种拦截命令执行的方法,理想情况下是通过创建一个包含内置路由命令实例的通用命令类,但我无法想象如何做这个。

具体来说,该RoutedCommand.Execute方法不是虚拟的,因此我需要另一种机制来拦截它的调用。另外,我不确定通用命令类的实例如何引用它必须为其设置光标的视图。

请问有什么建议吗?

4

1 回答 1

3

您可以以静态方式设置光标。效果是当应用程序具有焦点而不是在某个控件上方时,光标将是“等待”。

该代码将成为冗长操作开始时 ViewModel 的一部分:

Mouse.OverrideCursor = Cursors.Wait;

操作完成后,您必须像这样清除覆盖:

Move.OverrideCursor = null;
于 2010-07-12T04:45:44.140 回答