0

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

4

3 回答 3

6

您可能想尝试将IsHitTestVisible属性设置为false.

还要记住还有键盘,所以你可能也想IsTabStop设置false

于 2013-06-13T17:02:38.353 回答
1

注册 Checked 事件并设置 IsChecked = !IsChecked。然后,当您需要更改选中的属性时,请取消注册 Checked 事件的值,然后重新注册。不是很好,但它应该可以在不创建新子类的情况下工作

于 2013-06-13T17:02:31.997 回答
0

您可以通过在 contextmenuopening (bubble-up)event 中将 eventargs 的handled 属性设置为true 来禁用上下文菜单以进行复选框控制。

于 2013-06-13T16:58:22.413 回答