WPF 文本框添加水印效果

  有的时候我们需要为我们的WPF文本框TextBox控件添加一个显示水印的效果来增强用户体验,比如登陆的时候提示输入用户名,输入密码等情形。如下图所示:

WPF 文本框添加水印效果

 

 

 

 

 

 

 

  这个时候我们除了可以修改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里面的内容我们可以自由发挥,你甚至可以添加一个图片加一段文字来描述你的水印信息都可以。

 

你可能感兴趣的:(WPF)