GTA*_*E86 6 wpf xaml contextmenu popup
我有一个带有项目的ListBox,并为其分配了一个ContextMenu,其中包含三个菜单项.除了其中一个菜单项启动冗长的操作外,一切正常.我想从处理程序关闭ContextMenu,并可能显示一个沙漏光标或其他东西.
可以这样做吗?或者,我应该使用Popup吗?如果是这样,我如何使用Popup代替ContextMenu?我的假设是我必须完全管理它 - 安置和生命.
谢谢!
Ali*_*vin 17
你想要的是:
myContextMenu.IsOpen = false;
Run Code Online (Sandbox Code Playgroud)
在长时间操作之前,请务必调用此方法.根据您的操作,您可能需要考虑通过在另一个线程上执行操作使其异步 - 这样,您就不会停止应用程序线程.
您可以在Dispatcher.BeginInvoke下运行长时间操作:
private void OnSomeContextMenuCommand(object sender, EventArgs e)
{
Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
{
// Put long-running operation here
}));
}
Run Code Online (Sandbox Code Playgroud)
如果执行此操作,ContextMenu将在长时间运行操作开始之前关闭.
一般来说,我更喜欢这个解决方案来显式关闭ContextMenu,因为它完全将UI与命令处理分开.
| 归档时间: |
|
| 查看次数: |
8396 次 |
| 最近记录: |