WPF 文本框添加水印效果


  有的時候我們需要為我們的WPF文本框TextBox控件添加一個顯示水印的效果來增強用戶體驗,比如登陸的時候提示輸入用戶名,輸入密碼等情形。如下圖所示:

 

 

 

 

 

 

 

  這個時候我們除了可以修改TextBox控件的控件模板之外,其實還有一種比較簡單的方式來處理。就是為我們的TextBox控件添加一個觸發器,當它的文本值為空並且當它沒有焦點的時候,我們就修改TextBox控件的背景樣式,我們將它的背景樣式設置為VisualBrush,並且在VisualBrush中添加一個TextBlock控件來顯示我們需要提示的水印信息。

  比如我們可以下面的代碼來實現:

 1   <TextBox  Margin="50,10" TextWrapping="Wrap" Name="tb1" Visibility="Visible" Grid.Row="1"  Height="30">
 2             <TextBox.Style>
 3                 <Style TargetType="TextBox">
 4                     <Style.Triggers>
 5                         <MultiTrigger>
 6                             <MultiTrigger.Conditions>
 7                                 <Condition Property="IsFocused" Value="False"></Condition>
 8                                 <Condition Property="Text" Value=""></Condition>
 9                             </MultiTrigger.Conditions>
10                             <Setter Property="Background">
11                                 <Setter.Value>
12                                     <VisualBrush AlignmentX="Left" AlignmentY="Top" Stretch="None">
13                                         <VisualBrush.Visual>
14                                             <TextBlock Padding="5,2" Background="Transparent" Foreground="Silver"  FontSize="14">請輸入用戶名</TextBlock>
15                                         </VisualBrush.Visual>
16                                     </VisualBrush>
17                                 </Setter.Value>
18                             </Setter>
19                         </MultiTrigger>
20                     </Style.Triggers>
21                 </Style>
22             </TextBox.Style>
23         </TextBox>

PS:VisualBrush里面的內容我們可以自由發揮,你甚至可以添加一個圖片加一段文字來描述你的水印信息都可以。

 


免責聲明!

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



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