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 复制到合适的
<UserControl.Resources>
元素。 (此 ControlTemplate 实际上是用于验证工具提示;我们将更改的 ControlTemplate 在样式内。)
在 TextBox 的 Style 中找到 ScrollViewer
元素,并向其添加 VerticalAlignment="Center"
属性。
或者,您可以添加属性
VerticalAlignment="TemplateBinding VerticalContentAlignment"
到 ScrollViewer。这应该允许您使用 VerticalContentAlignment 属性设置文本框内容的垂直对齐方式。
如果您也希望更改 TextBox 内容的水平对齐方式,也可以采用相同的方法。
【讨论】:
以上是关于Silverlight:文本框 VerticalContentAlignment="Center"的主要内容,如果未能解决你的问题,请参考以下文章
ms silverlight blend sketchflow - 组合框中的默认文本
Silverlight 组合框 SelectedItem 绑定问题
如何在 Silverlight 中的 TextBox 上方定位菜单栏?