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里面的內容我們可以自由發揮,你甚至可以添加一個圖片加一段文字來描述你的水印信息都可以。
作者:rpoplar
出處:http://www.rzrgm.cn/rpoplar/
本文版權歸作者【rpoplar】和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究其法律責任的權利。
出處:http://www.rzrgm.cn/rpoplar/
本文版權歸作者【rpoplar】和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究其法律責任的權利。

浙公網安備 33010602011771號