【发布时间】:2011-03-29 05:39:12
【问题描述】:
我的应用程序中有两个富文本框,一个在另一个之下。当用户在一个富文本框中开始选择并继续到另一个富文本框时,选择应该自动移动到第二个富文本框。有没有办法进行这种类型的选择。
提前致谢, 昙花一现
【问题讨论】:
-
我会使用 MouseEnter 和 MouseLeave 来实现这个行为
标签: wpf richtextbox
我的应用程序中有两个富文本框,一个在另一个之下。当用户在一个富文本框中开始选择并继续到另一个富文本框时,选择应该自动移动到第二个富文本框。有没有办法进行这种类型的选择。
提前致谢, 昙花一现
【问题讨论】:
标签: wpf richtextbox
您可能认为可以使用 MouseEnter 和 MouseLeave,但是当鼠标被捕获时(就像在文本选择期间一样),这些事件不会按预期触发。
实现目标的方法是:
MouseMove。MouseMove事件中,检查Mouse.Captured是否是RichTextBox。VisualTreeHelper.HitTest 对鼠标的当前位置进行命中测试。从HitTestResult.VisualHit 的值向上走可视化树,查看鼠标是否在当前以外的 RichTextBox 上。Mouse.Capture(null) 取消鼠标捕获,然后在新的 RichTextBox 上触发 MouseLeftButtonDown 事件以使其捕获鼠标并开始选择。【讨论】: