2010-08-13 78 views
0

我在我的應用程序中有兩個richtextboxes,一個在另一個下面。當用戶在一個richtextbox中開始選擇並繼續到另一個richtextbox選擇時,應該自動移動到第二個richtextbox.is有任何方法來做這種類型的選擇。WPF richtextbox選擇問題

在此先感謝, dhyanesh

+0

我會使用MouseEnter和MouseLeave來實現此行爲 – 2010-08-13 00:45:06

回答

0

你以爲你可以使用MouseEnterMouseLeave,但是當鼠標被捕獲(因爲它是文本選擇時),符合市場預期,這些事件不會觸發。

來實現你的目標的方法是:

  1. 訂閱MouseMove第一RichTextBox的。
  2. MouseMove事件中,檢查Mouse.Captured以查看它是否爲RichTextBox。
  3. 如果捕捉到鼠標,請使用​​對鼠標的當前位置執行命中測試。從HitTestResult.VisualHit的值開始查看可視樹,查看鼠標是否位於當前RichTextBox以外的位置。
  4. 如果鼠標懸停在新的RichTextBox上,請用Mouse.Capture(null)取消鼠標捕獲,然後在新的RichTextBox上觸發一個MouseLeftButtonDown事件,使其捕獲鼠標並開始選擇。
+0

它的工作非常感謝你 – Dhyanesh 2010-08-13 05:07:20

+0

我想保留選擇多個textbox.is有任何方式來做到這一點。 – Dhyanesh 2010-08-13 06:30:22

+0

我相信只有使用FocusManager.IsFocusScope將每個RichTextBox放在不同的焦點範圍內,但我擔心允許兩個控件一次聚焦可能會讓最終用戶感到困惑。另一種方法是實際更新文檔的顏色或其他屬性以指示選擇。 – 2010-08-13 18:59:43