WPF實現TextBox水印效果


在日常項目中,一個TextBox需要輸入用戶名,我們通常的做法是先用一個TextBlock來說明,例如下面的截圖:

今天將使用另外一種方式來展示,使用水印的方式。請參考下面的代碼:

    <Window.Resources>
        <BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter"/>
        <Style x:Key="EntryFieldStyle" TargetType="Grid" >
            <Setter Property="HorizontalAlignment" Value="Stretch" />
            <Setter Property="VerticalAlignment" Value="Center" />
            <Setter Property="Margin" Value="20,0" />
        </Style>
    </Window.Resources>
    <Grid Style="{StaticResource EntryFieldStyle}">
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">
            <TextBlock 
                    Text="請輸入用戶名" Margin="5,2"
                    Visibility="{Binding ElementName=txtWatermark, Path= Text.IsEmpty,
                    Converter={StaticResource booleanToVisibilityConverter}}"/>
            <TextBox x:Name="txtWatermark" Background="Transparent" BorderBrush="Indigo"/>
        </Grid>
    </Grid>

運行效果截圖:

我們可以把這個封裝成一個UserControl,這樣就可以復用了。可以下載我的項目代碼,我已經把它封裝成一個控件。代碼下載

當然我們也可以使用其他控件實現,例如 Extended WPF Toolkit WatermarkTextBox 控件。

如果有其他實現方式歡迎與我分享。感謝你的閱讀。


免責聲明!

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



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