WPF之TextBox


1. 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。 內容宿主元素可能不會承載任何子元素。

 

2. TextBox實現回車換行

<TextBox Height="auto" KeyDown="TextBox_KeyDown" TextWrapping="Wrap" AcceptsReturn="True"/>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM