WPF文本框中的垂直对齐

问题描述 投票:41回答:4

我在wpf应用程序中有2个TextBox,一个是用户名,另一个是密码,但是都显示为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" />
wpf textbox font-size
4个回答
24
投票

调整这些控件的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" />

128
投票

要使文本在TextBox中居中,请使用TextBox的VerticalContentAlignment属性。

<TextBox Text="The text" Height="40" VerticalContentAlignment="Center" />

2
投票

您已将这些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" />

0
投票

之所以这样,是因为您已经明确指定了FontSize属性和Height属性。 FontSize较大的文本不能适合给定的高度。因此,有两种解决方案

  1. 将TextBox的高度增加到60(但是这将创建一个高度较高的TextBox,在用户界面中可能看起来不太好)。或者,您可以只跳过Height属性,这样它将自动占用所需的最小空间。
    <TextBox Grid.Row="1"
             Grid.Column="1"
             BorderThickness="1" 
             BorderBrush="#FFD5D5D5" 
             FontSize="36" 
             Text="test" />
  1. 减小FontSize,以使文本适合高度为40的文本框
    <TextBox Grid.Row="1"
             Grid.Column="1"
             Height="40"
             BorderThickness="1" 
             BorderBrush="#FFD5D5D5" 
             FontSize="24" 
             Text="test" />
© www.soinside.com 2019 - 2024. All rights reserved.