【问题标题】:How to disable mouse buttons in C# WPF?如何在 C# WPF 中禁用鼠标按钮?
【发布时间】:2021-01-28 07:26:55
【问题描述】:

在大文件加载期间,我想禁用鼠标按钮以使用户无法点击 UI 元素并触发事件。

编辑 当我在 WPF Caliburn Micro 应用程序中加载大文件时,我将 Listbox 的 IsEnabled 属性更改为 false,因为我想在此过程中禁用按钮。 接下来加载文件时,我将 Listbox 的 IsEnabled 属性更改为 true。 之后,每次点击禁用按钮都会引发事件,我不希望这样。 我不知道如何删除这个事件,以及存储在哪里,所以我认为解决这个问题的更简单的方法是在文件加载过程中禁用鼠标按钮。但这也不容易…… 提前谢谢你!

【问题讨论】:

  • 如果它只是一个单独的窗口,您可以从代码中禁用该窗口。不知道为什么要这样做,在加载大文件期间,您可以将其作为前台任务运行以冻结软件。
  • 您可能想用更多细节来充实您的问题。另见:stackoverflow.com/help/how-to-ask
  • 谢谢,我会在下一篇文章中尽力而为。这是我的第一次。
  • @Jay Mason 谢谢,我已经尝试过您的解决方案。在开始加载文件之前,我禁用了窗口。加载文件时,我必须再次启用窗口,然后在加载文件期间引发的每个事件都被触发并在 UI 中造成很多混乱。如果您有其他解决方案,欢迎您。
  • 我在这篇帖子stackoverflow.com/questions/9527404/…找到了解决方案

标签: c# .net wpf mouseevent mouse


【解决方案1】:

如果您只想禁用鼠标按钮,用户仍然可以使用键盘。所以你需要一种不同的技术。 您可以使用Opacity="0.5" 将隐藏的网格添加到您的窗口。当您想阻止用户使用窗口时,只需调用可见网格即可。

【讨论】:

  • 好主意,虽然我的客户不接受。
【解决方案2】:

如何在加载大数据时覆盖 ListBox 上的 SelectionChanged 事件并将其设置为 Handled = true

【讨论】:

  • 我已尝试实施您的解决方案,但我不能。您能否发送示例,如何在 ViewModel 中覆盖事件以及如何在 View 中使用它?提前谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-02
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 2017-06-09
  • 2021-05-18
相关资源
最近更新 更多