Silverlight:TextBox VerticalContentAlignment =“Center”

时间:2011-07-19 08:39:05

标签: silverlight xaml

我正在尝试使用VerticalContentAlignment属性垂直居中TextBox的内容,但它似乎根本没有任何效果。文字保持在顶部。谁能告诉我怎么做?

这是我的代码:

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

2 个答案:

答案 0 :(得分:7)

可以使TextBox文本垂直居中。但是,这确实需要您重新应用其ControlTemplate。

要做到这一点:

  1. 将Style和ControlTemplate从TextBox Styles and Templates page on MSDN复制到合适的<UserControl.Resources>元素。 (此ControlTemplate实际上是用于验证工具提示;我们将更改的ControlTemplate在Style中。)
  2. 在TextBox的Style中查找ScrollViewer元素,并为其添加VerticalAlignment="Center"属性。
  3. 或者,您可以添加属性

    VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
    

    到ScrollViewer。这应该允许您使用VerticalContentAlignment属性设置TextBoxes内容的垂直对齐方式。

    如果您希望更改TextBox内容的水平对齐方式,也可以使用相同的方法。

答案 1 :(得分:-1)

XAML代码是正确的,以下内容应该足够了:

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

您可以在网格外尝试该代码吗?

检查您在网格上定义的属性,这可能会导致您的行为。你可以发布完整的XAML代码吗?