你可以滾動每個TextBox
到右側是這樣的:
txtImagesFolder.CaretIndex = txtImagesFolder.Text.Length - 1;
var rect = t1.GetRectFromCharacterIndex(txtImagesFolder.CaretIndex);
txtImagesFolder.ScrollToHorizontalOffset(rect.Right);
創建一個方法,並調用它的每個TextBox
:
private void Button_Click(object sender, RoutedEventArgs e)
{
ScrollToRight(txtImagesFolder);
ScrollToRight(txtTextFolder);
}
private void ScrollToRight(TextBox textBox)
{
textBox.CaretIndex = textBox.Text.Length - 1;
var rect = textBox.GetRectFromCharacterIndex(textBox.CaretIndex);
textBox.ScrollToHorizontalOffset(rect.Right);
}
這似乎爲我工作。然而,我遇到的後續問題是,在我打電話給ScrollToRights之前,我沒有把握它們的StackPanel。這意味着該協議沒有收到任何協調。我試着從StackPanel的IsVisibleChanged事件調用它,但這當然也發生在UI更新之前。有關解決方法的任何想法?
使用調度:
private void Button_Click(object sender, RoutedEventArgs e)
{
sp.Visibility = Visibility.Visible;
Dispatcher.BeginInvoke(new Action(() =>
{
ScrollToRight(txtImagesFolder);
ScrollToRight(txtTextFolder);
}), System.Windows.Threading.DispatcherPriority.Background);
}
來源
2017-07-06 10:10:21
mm8
只能有一個_is_插入符號。你想達到什麼目的? – CodeCaster
您是否嘗試在設置焦點後移動您的選擇? – Paul
@CodeCaster所有文本框應顯示其文本的右側。如果文本框的寬度比文本更多,則左側將隱藏在左側。如果使用文本填充文本框,則左側文本仍然可見,右側隱藏。我希望所有右側的文字可見。焦點實際上不是問題/關注點。它似乎有必要設置插入符號。 – windowskm