WPF TextBox控件中文字實現垂直居中

項目中的問題:

TextBox縱向長度比較長但文字字體比較小的時候,在輸入時就會發現文字不是垂直居中的。

而使用中我們發現,TextBox雖然可以設置文字的水平對齊方式,但卻沒有相應的屬性讓我們來調節他的垂直對齊方式。好在TextBox繼承自Control類,可以通過修改Template模板來改變他的屬性樣式(TextBlock繼承自FrameworkElement,不可進行模板編輯)。

<Style x:Key="Test_TextBox" TargetType="{x:Type TextBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border x:Name="border" Width="Auto" Height="Auto" BorderThickness="1" BorderBrush="#FF7F9DB9">
<Grid x:Name="grid" Background="#FFFFFF">
<ScrollViewer x:Name="PART_ContentHost" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

最後應用一下樣式可以了。

PS:

內容宿主 是用來呈現 TextBox 內容的元素。TextBox 的 ControlTemplate 必須僅包含一個標記爲內容宿主元素的元素。 若要將某個元素標記爲內容宿主,應爲它指定特殊名稱 PART_ContentHost。 內容宿主元素必須爲 ScrollViewer 或 AdornerDecorator。 內容宿主元素可能不會承載任何子元素。

本文鏈接地址爲http://blog.csdn.net/wushang923/article/details/6590302

發佈了66 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章