所以我现在有这个:
<CheckBox x:Name="checkBox" HorizontalAlignment="Left" Margin="346,17,0,0" Grid.Row="1" VerticalAlignment="Top" Width="295" Height="189" >
<TextBox x:Name="textBox" HorizontalAlignment="Left" Height="20" Grid.Row="1" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
</CheckBox>
我目前无法输入&#34; - &#34;在我的TextBox
中,因为它是我CheckBox
的孩子而CheckBox
有一些内置功能,如果 + / = 键或 - /按下_ 键,它会检查/取消选中我的CheckBox
。我不想要这个功能,我希望用户能够实际输入短划线,如&#34; - &#34;没有它取消选中/选中我的复选框。有没有一种简单的方法来解决这个问题?
提前致谢
答案 0 :(得分:2)
您需要做的就是设置IsThreeState = True;
,因为他们正在检查 CheckBox.cs code here
IsThreeState
答案 1 :(得分:0)
一种方法是创建自定义复选框并覆盖 OnKeyDown :
public class MCheckBox : CheckBox
{
protected override void OnKeyDown(KeyEventArgs e) { }
}
另一种方法是不将TextBox放在CheckBox中,而是放在它旁边,在DockPanel中进行一些修改:
<StackPanel>
<CheckBox>
<TextBox Text="this is a TextBox within a CheckBox"/>
</CheckBox>
<DockPanel LastChildFill="False">
<CheckBox VerticalAlignment="Center"/>
<TextBox Text="this is a TextBox beside a CheckBox" Margin="4,0,0,0"/>
</DockPanel>
</StackPanel>