Silverlight: TextBox VerticalContentAlignment = "Центр" - PullRequest
7 голосов
/ 19 июля 2011

Я пытаюсь расположить по центру содержимое TextBox со свойством VerticalContentAlignment, но, похоже, это никак не влияет. Текст остается наверху. Может кто-нибудь сказать мне, как это сделать?

Вот мой код:

<TextBox Grid.Column="1"
     Grid.Row="0"
     Width="200"
     Height="28"
     VerticalAlignment="Center"
     VerticalContentAlignment="Center" />

Ответы [ 2 ]

7 голосов
/ 20 июля 2011

Можно сделать TextBox по центру текста вертикально. Однако для этого требуется повторно применить его ControlTemplate.

Для этого:

  1. Скопируйте стиль и шаблон ControlTemplate со страницы Стили и шаблоны TextBox в MSDN в подходящий элемент <UserControl.Resources>. (Этот ControlTemplate на самом деле предназначен для всплывающей подсказки; ControlTemplate, который мы изменим, находится в пределах Style.)
  2. Найдите элемент ScrollViewer в Style для TextBox и добавьте к нему свойство VerticalAlignment="Center".

Кроме того, вы можете добавить свойство

VerticalAlignment="{TemplateBinding VerticalContentAlignment}"

в ScrollViewer. Это должно позволить вам установить вертикальное выравнивание содержимого ваших текстовых полей, используя свойство VerticalContentAlignment.

Вы можете использовать тот же подход, если хотите изменить горизонтальное выравнивание содержимого TextBox.

0 голосов
/ 19 июля 2011

Код XAML правильный, должно быть достаточно:

<TextBlock Text="Centered Text" VerticalAlignment="Center" />

Можете ли вы попробовать этот код за пределами вашей сетки?

Проверьте атрибуты, которые вы определили в своей таблице, это, вероятно, приведет к вашему поведению. Можете ли вы опубликовать полный код XAML?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...