WPF Multiline TextBox Положение каретки

1

У меня многострочный TextBox, который заполняет пространство, содержащее окно (как по вертикали, так и по горизонтали). Когда я даю ему сосредоточиться, чтобы начать печатать, позиция каретки находится в самом центре TextBox... что кажется странным для меня.

Изображение 174551

Как я могу начать это с вершины?

Единственное, что я нашел, это установить VerticalAlignment="Top" но это имеет нежелательный эффект, который TextBox больше не заполняет высоту своего родителя.

Здесь код, контейнер является стандартной сеткой.

<TextBox Grid.Row="0" TextWrapping="Wrap" AcceptsReturn="True" AcceptsTab="True"
    Text="{Binding Description}" Margin="5 5 5 0" />
  • 0
    Это очень странно. Я только что попытался воссоздать это, и это работает для меня с самого начала (вверху).
  • 2
    Когда я пробую ваш пример кода в пустом проекте, он помещает курсор вверху. Что-то еще происходит?
Показать ещё 4 комментария
Теги:
wpf
textbox

1 ответ

3
Лучший ответ

Есть два свойства, которые вы можете решить, чтобы исправить свою проблему:

Свойство TextBox.TextAlignment
Свойство Control.VerticalContentAlignment

<TextBox Grid.Row="1" TextWrapping="Wrap" AcceptsReturn="True" AcceptsTab="True" 
    Text="{Binding Description}" Margin="5 5 5 0" 
    TextAlignment="Left" VerticalContentAlignment="Top" />
  • 0
    VerticalContentAlignment - это то, что я искал. Спасибо, сэр.
  • 1
    Это странно; По умолчанию для VerticalContentAlignment должно быть установлено значение Top . @ aw04, вы используете собственный стиль в TextBox ? Вам не нужно устанавливать это значение явно.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню