我有一個TextBox,它在獲取焦點時執行SelectAll()。很棒。問題是,如果內容不適合在框中,那麼SelectAll會導致內容滾動到最後。我希望它滾動到前面,而不是 - 此框正在與數字字段一起使用。如何防止WPF編輯框滾動在程序化SelectAll上結束?
我的問題是:有可能SelectAll(),但避免滾動?
我現在有的解決方法是排隊ScrollToHome。我不太喜歡這個,因爲它會在文本呈現在另一個位置時引起流行。
public new void SelectAll()
{
base.SelectAll();
// changing selection does something with a queued scroll request, so have to queue ours in the back. this still may cause a flash
// if a render slips through. would like to find a better way to do this.
Dispatcher.BeginInvoke(DispatcherPriority.Background, ScrollToHome);
}
注意,ScrollToHome必須排隊這樣或者被「覆蓋」由於其他一些排隊event..I'm猜測通知更改事件內部的文本框的系統。我在源代碼中探索過,它非常複雜,無法確切地知道它在做它的滾動請求。
所以,我正在尋找的是下列之一:
- 如何全選()沒有任何滾動出現或與它滾動到前面。
- 如何強制更新顯示器,以便我不會彈出。
我忘了開始/結束。這確定了它,謝謝! – scobi 2010-07-07 20:49:03