如何检测WPF ComboBox是否在EditMode中

时间:2015-02-27 19:21:35

标签: wpf wpf-controls

我正在编写一个.NET 4.5 C#/ WPF应用程序,我必须专门检测ComboBox是否处于编辑模式。换句话说,我只需知道鼠标光标是否处于活动状态并在ComboBox的可编辑部分闪烁,ComboBox已准备好输入用户在键盘上输入的内容。

我尝试过“TextBoxBase.GotFocus”,“TextBoxBase.GotKeyboardFocus”等等。

即使用户只是点击了ComboBox,这些事件也会触发,这没有任何意义(即使我甚至没有碰过键盘,为什么“GotKeyboardFocus”事件也会触发?)。

无论如何,我怎样才能检测到鼠标光标处于活动状态并在ComboBox的可编辑部分闪烁,ComboBox是否已准备好输入用户在键盘上的输入?< / p>

1 个答案:

答案 0 :(得分:0)

得到了......

void cmbMyComboBox_Loaded(object sender, RoutedEventArgs e)
{
   var obj = (ComboBox)sender;
   if (obj != null)
   {
      var t = (TextBox)obj.Template.FindName("PART_EditableTextBox", obj);
      if (t != null)
      {
         t.MaxLength = 16;
         t.GotFocus += (s, a) => { MyFunction(); } };
         t.LostFocus += (s, a) => { MyOtherFunction(); } };
      }
   }
}