文本框光标不闪烁

kla*_*sel 4 wpf focus cursor caret

我有一个带有自定义列(派生自 DataGridTextColumn)的 WPF 数据网格 (4.0)。

在 GenerateEditingElement 中,我创建了一个自定义文本框控件(带有一个附加按钮),并且喜欢将光标设置到其中以便用户可以直接开始编辑。

我得到的最接近的是插入符号显示但不闪烁,我需要额外单击才能开始编辑。

所有其他东西(绑定,...)运行良好

有任何想法吗?

Rac*_*hel 5

由于插入符号显示,但不闪烁,那么我猜您的控件具有逻辑焦点,但不是键盘焦点。

你如何将控件设置为焦点?

myControl.Focus();将为控件提供逻辑焦点,但它不会响应键盘事件,因为它没有键盘焦点。要提供元素 KeyboardFocus,请使用

Keyboard.Focus(myControl);
Run Code Online (Sandbox Code Playgroud)

这是因为 WPF 允许您定义多个焦点范围,每个范围可以拥有自己的焦点元素,但是整个应用程序中只有一个控件可以拥有键盘焦点

  • 我将 tx.Focus() 移动到我的自定义控件的 Loaded-Event(实际上只是一个用户控件 ;-),这是一种解决方法 (3认同)