WPF文本框中的垂直对齐
Posted
技术标签:
【中文标题】WPF文本框中的垂直对齐【英文标题】:Vertical Align in WPF TextBox 【发布时间】:2011-05-26 02:06:40 【问题描述】:我的 wpf 应用程序中有 2 个TextBox
es,一个用于用户名,另一个用于密码,两者都有FontSize=20
,但文本显示如下:
我该如何解决这个问题?
Xaml:
<TextBox Grid.Row="1" Grid.Column="1" Height="40" BorderThickness="1" BorderBrush="#FFD5D5D5" FontSize="36" Text="test" />
<PasswordBox Grid.Row="3" Grid.Column="1" Height="40" BorderThickness="1" BorderBrush="#FFD5D5D5" FontSize="36" Password="test" />
【问题讨论】:
你用的是什么字体?可能是因为这个。 我没有指定任何内容,但我认为它默认为“Segoe UI”,但我更改了它但它保持不变 【参考方案1】:要将TextBox
中的文本垂直居中,请使用VerticalContentAlignment
属性:
<TextBox Text="The text" Height="40" VerticalContentAlignment="Center" />
【讨论】:
或VerticalContentAlignment = VerticalAlignment.Center;
【参考方案2】:
这是因为您明确指定了 FontSize 属性以及 Height。具有较大 FontSize 的文本无法适应给定的高度。 所以,有几个解决方案
-
将 TextBox 的高度增加到 60(但这会创建一个高高的 TextBox,在 UI 中可能看起来不太好)。或者,您可以跳过 Height 属性,以便它自动占用所需的最小空间。
<TextBox Grid.Row="1"
Grid.Column="1"
BorderThickness="1"
BorderBrush="#FFD5D5D5"
FontSize="36"
Text="test" />
-
减小FontSize,使文本可以适合高度为40的TextBox
<TextBox Grid.Row="1"
Grid.Column="1"
Height="40"
BorderThickness="1"
BorderBrush="#FFD5D5D5"
FontSize="24"
Text="test" />
【讨论】:
【参考方案3】:调整这些控件的Padding
属性,例如Padding="0"
:
<TextBox Grid.Row="1" Grid.Column="1" Height="40" BorderThickness="1" BorderBrush="#FFD5D5D5" FontSize="36" Text="test" Padding="0" />
<PasswordBox Grid.Row="3" Grid.Column="1" Height="40" BorderThickness="1" BorderBrush="#FFD5D5D5" FontSize="36" Password="test" Padding="0" />
或者,不要设置Height
属性,而是让控件根据其内容的高度自动调整大小:
<TextBox Grid.Row="1" Grid.Column="1" BorderThickness="1" BorderBrush="#FFD5D5D5" FontSize="36" Text="test" />
<PasswordBox Grid.Row="3" Grid.Column="1" BorderThickness="1" BorderBrush="#FFD5D5D5" FontSize="36" Password="test" />
【讨论】:
【参考方案4】:您已将明确的 Height
设置为 40
给这些 TextBox
控件。
请删除它,让他们有足够的空间来显示他们的内容。
<TextBox Grid.Row="1"
Grid.Column="1"
BorderThickness="1"
BorderBrush="#FFD5D5D5"
FontSize="36"
Text="test" />
<PasswordBox Grid.Row="3"
Grid.Column="1"
BorderThickness="1"
BorderBrush="#FFD5D5D5"
FontSize="36"
Password="test" />
【讨论】:
以上是关于WPF文本框中的垂直对齐的主要内容,如果未能解决你的问题,请参考以下文章