当前位置:  开发笔记 > 编程语言 > 正文

如何在没有聚焦的情况下保持WPF TextBox选择?

如何解决《如何在没有聚焦的情况下保持WPFTextBox选择?》经验,为你挑选了2个好方法。

我希望在WPF TextBox中显示一个选项,即使它不在焦点上.我怎样才能做到这一点?



1> John Myczek..:

我已经将此解决方案用于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不会意识到它失去了焦点,仍然会显示突出显示的选择.

在这种情况下,我没有使用数据绑定,因此可能会破坏双向绑定.您可能必须在LostFocus事件处理程序中强制绑定.像这样的东西:

     Binding binding = BindingOperations.GetBinding(this, TextProperty);
     if (binding.UpdateSourceTrigger == UpdateSourceTrigger.Default ||
         binding.UpdateSourceTrigger == UpdateSourceTrigger.LostFocus)
     {
        BindingOperations.GetBindingExpression(this, TextProperty).UpdateSource();
     }


这通常可以正常工作,但是会中断在其中没有选择的非焦点RichTextBox上的滚动-选择突出显示项不会随文本移动。

2> Zamboni..:

另一个选项是在XAML中定义单独的焦点范围,以在第一个TextBox中维护选择.


  
    
    
  

  
  
    
    

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有