【发布时间】:2018-05-07 22:15:37
【问题描述】:
WPF 的文本框 (System.Windows.Controls.TextBox) 仅在获得焦点时才会突出显示选定的文本。当焦点丢失时,我需要让 TextBox 继续显示选择。
在标准的 Win32 EDIT 控件中,我可以使用ES_NOHIDESEL 来实现这一点。如何在 WPF 中获得等价物?
【问题讨论】:
标签: wpf
WPF 的文本框 (System.Windows.Controls.TextBox) 仅在获得焦点时才会突出显示选定的文本。当焦点丢失时,我需要让 TextBox 继续显示选择。
在标准的 Win32 EDIT 控件中,我可以使用ES_NOHIDESEL 来实现这一点。如何在 WPF 中获得等价物?
【问题讨论】:
标签: wpf
您可以处理 LostFocus 事件并将事件 arg 设置为 e.Handled = true。这样,TextBox 就不会知道它失去了焦点,并且会保留您的选择。
private void myTextCtrl_LostFocus(object sender, RoutedEventArgs e)
{
e.Handled = true;
}
这将为您提供与您正在寻找的类似的东西,但与 Win32 方式不同的是,它仍会以突出显示的颜色而不是深灰色显示您的选择。
如果您真的想完成这项工作,您还可以为 <TextBox.SelectionBrush> 编写 XAML。
另一种方式是使用FocusManager,您可以阅读this method here。
【讨论】: