Silverlight:文本框 VerticalContentAlignment="Center"

Posted

技术标签:

【中文标题】Silverlight:文本框 VerticalContentAlignment="Center"【英文标题】:Silverlight: TextBox VerticalContentAlignment="Center" 【发布时间】:2011-10-08 08:01:44 【问题描述】:

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

这是我的代码:

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

【问题讨论】:

见***.com/questions/1491649/… 【参考方案1】:

XAML 代码是正确的,以下就足够了:

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

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

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

【讨论】:

由于您的代码生成的 TextBlock 具有与它包含的文本完全相同的大小,因此文本将居中。但是,如果我使用 TextBox 并将高度设置为 30,问题仍然存在。【参考方案2】:

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

为此:

    将样式和 ControlTemplate 从 TextBox Styles and Templates page on MSDN 复制到合适的 &lt;UserControl.Resources&gt; 元素。 (此 ControlTemplate 实际上是用于验证工具提示;我们将更改的 ControlTemplate 在样式内。) 在 TextBox 的 Style 中找到 ScrollViewer 元素,并向其添加 VerticalAlignment="Center" 属性。

或者,您可以添加属性

VerticalAlignment="TemplateBinding VerticalContentAlignment"

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

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

【讨论】:

以上是关于Silverlight:文本框 VerticalContentAlignment="Center"的主要内容,如果未能解决你的问题,请参考以下文章

ms silverlight blend sketchflow - 组合框中的默认文本

强制绑定更新 Silverlight

Silverlight 组合框 SelectedItem 绑定问题

如何在 Silverlight 中的 TextBox 上方定位菜单栏?

Silverlight 组合框 selectedvalue 字符串属性绑定

消息框的 Silverlight BusyIndi​​cator 背景颜色