在wpf上禁用单击事件更改IsPressed复选框

时间:2013-06-13 16:49:38

标签: c# wpf xaml events checkbox

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

注册Checked事件并设置IsChecked =!IsChecked。然后,当您需要更改已检查属性时,取消注册Checked事件会更改该值,然后再次注册。不是很好,但它应该工作而不创建一个新的子类

答案 2 :(得分:0)

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