C# 禁用“在wpf上显示单击事件更改”复选框

C# 禁用“在wpf上显示单击事件更改”复选框,c#,wpf,xaml,events,checkbox,C#,Wpf,Xaml,Events,Checkbox,由于奇怪的需求,我需要禁用用户通过单击事件更改复选框的IsChecked属性的能力。我无法禁用复选框,因为右键单击它会显示一个上下文菜单,该菜单为控件提供一些选项,包括允许用户通过某些属性控制复选框的IsChecked状态的选项。有没有一种方法可以在不创建从该控件扩展的类的情况下执行此操作?这在c#中使用wpf复选框。您可以通过在复选框控件的contextmenuopening(气泡上升)事件中将eventargs的handled属性设置为true来禁用上下文菜单。您可以通过在contextme

由于奇怪的需求,我需要禁用用户通过单击事件更改复选框的IsChecked属性的能力。我无法禁用复选框,因为右键单击它会显示一个上下文菜单,该菜单为控件提供一些选项,包括允许用户通过某些属性控制复选框的IsChecked状态的选项。有没有一种方法可以在不创建从该控件扩展的类的情况下执行此操作?这在c#中使用wpf复选框。

您可以通过在复选框控件的contextmenuopening(气泡上升)事件中将eventargs的handled属性设置为true来禁用上下文菜单。

您可以通过在contextmenuopening(气泡上升)中将eventargs的handled属性设置为true来禁用上下文菜单复选框控件的事件。

为选中的事件注册并设置IsChecked=!我检查过了。然后,当需要更改选中的属性时,请为选中的事件取消注册更改该值,然后再次注册。不是很好,但是它应该可以工作,而不需要为选中的事件创建一个新的子类,并设置IsChecked=!我检查过了。然后,当需要更改选中的属性时,请为选中的事件取消注册更改该值,然后再次注册。不是很好,但它应该可以在不创建新子类的情况下工作

您可能希望尝试将
ishitestvisible
属性设置为
false


另外,请记住还有键盘,因此您可能还需要将
IsTabStop
设置为
false

您可能需要尝试将
ishitestvisible
属性设置为
false


另外,请记住还有键盘,因此您可能还希望将
IsTabStop
设置为
false

如何处理事件并对每个事件调用
IsChecked=false
。如何处理事件并对每个事件调用
IsChecked=false
。哇,这确实有效,我以为IshitteVisible会禁用关联菜单。这房子到底在干什么?我以前使用过它,但从未完全理解它的文档。在看到您的答案之前,我最终处理了PreviewMouseLeftButtonDownevent,得到了类似的结果。而且,这比反复切换值的建议要干净得多。哇,这确实有效,我认为IshitteVisible会禁用上下文菜单。这房子到底在干什么?我以前使用过它,但从未完全理解它的文档。在看到您的答案之前,我最终处理了PreviewMouseLeftButtonDownevent,得到了类似的结果。而且,比反复切换值的建议更简洁。我想启用上下文菜单,而不是禁用它。我对这个响应有点困惑。我想启用上下文菜单,而不是禁用它。我对这个响应有点困惑。我如何注销已检查的事件?我使用了上面的解决方案,但知道这一点似乎很有用。在代码中更改IsChecked属性时,您将删除IsChecked eventHandler进行更改,然后重新设置处理程序。我将如何注销选中的事件?我使用了上面的解决方案,但知道这一点似乎很有用。在代码中更改IsChecked属性时,您将删除IsChecked eventHandler进行更改,然后再次设置处理程序