2010-12-15 66 views
27

我有2個TextBox ES在我的WPF應用程序,一個用戶名和其他密碼,都有FontSize=20,但文字會出現這樣的:垂直對齊在WPF的TextBox

哪有我解決這個問題?

的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" /> 
+0

你使用什麼字體?這可能是由於這一點。 – Donut 2010-12-15 17:53:54

+0

我沒有指定任何,但我認爲它默認爲「Segoe UI」,但我改變了它,但它保持不變 – 2010-12-15 17:56:34

+0

請發佈文本框的xaml – 2010-12-15 18:29:33

回答

16

調整這些控件的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" /> 
+0

這麼簡單...謝謝!! – 2010-12-15 20:10:12

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" /> 
86

爲中心的一個TextBox使用文本TextBox的VerticalContentAlignment屬性。

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

我添加了這個,因爲它回答了這個問題:「在WPF文本框中垂直對齊」。 – 2013-07-07 13:34:56

+0

這是答案。 – Matarata 2016-05-03 11:10:51