我想在WPF文本框中显示一个选择,即使它不在焦点上。我怎样才能做到这一点?
最佳答案
我已经为RichTextBox使用了此解决方案,但我认为它也可以用于标准文本框。基本上,您需要处理LostFocus事件并将其标记为已处理。
protected void MyTextBox_LostFocus(object sender, RoutedEventArgs e)
{
// When the RichTextBox loses focus the user can no longer see the selection.
// This is a hack to make the RichTextBox think it did not lose focus.
e.Handled = true;
}
TextBox不会意识到它失去了焦点,仍然会显示突出显示的选择。
在这种情况下,我不使用数据绑定(bind),因此这可能会弄乱双向绑定(bind)。您可能必须在LostFocus事件处理程序中强制绑定(bind)。像这样:
Binding binding = BindingOperations.GetBinding(this, TextProperty);
if (binding.UpdateSourceTrigger == UpdateSourceTrigger.Default ||
binding.UpdateSourceTrigger == UpdateSourceTrigger.LostFocus)
{
BindingOperations.GetBindingExpression(this, TextProperty).UpdateSource();
}