WPF用样式实现TextBox的虚拟提示效果

摘要:
在TextBox没有值输入之前显示灰色提示消息,StyleTargetType=“{x:Style.Triggers>ConditionProperty=“TextBox.IsFocused”value=“false”/>SetterProperty=“Template”>

【版权声明】本文为博主原创,未经允许禁止用作商业用途,如有转载请注明出处。 

话说好多软件和网站都能实现虚拟提示,好吧这个名词是我自己起的,因为我也不知道这么形容这个效果。

  效果描述:在TextBox没有输入值之前显示灰色提示信息,当获得焦点时提示自动消失,如果没有编辑离开此控件则依然显示提示信息,直到输入值为止。

  效果图:

WPF用样式实现TextBox的虚拟提示效果第1张

  这里我用到了一个属性Tag用来存储提示信息,各位也可以根据实际情况绑定不同的属性或数据源。主要是通过样式中的MultiTrigger和控件的ControlTemplate来实现的。

代码比较简单,如有疑问可以随时联系我。

代码如下:

 1  <Style TargetType="{x:Type TextBox}">
 2             <Style.Triggers>
 3                 <MultiTrigger>
 4                     <MultiTrigger.Conditions>
 5                         <Condition Property="Text" Value=""/>
 6                         <Condition Property="TextBox.IsFocused" Value="false"/>
 7                     </MultiTrigger.Conditions>
 8                     <Setter Property="Template">
 9                         <Setter.Value>
10                             <ControlTemplate>
11                                 <Border BorderThickness="1" BorderBrush="Gray" Margin="0">
12                                     <TextBlock x:Name="MainTextBlock"  Text="{TemplateBinding TextBox.Tag}" Width="{TemplateBinding TextBox.ActualWidth}" Foreground="Gray" VerticalAlignment="Center" HorizontalAlignment="Left"/>
13                                 </Border>
14                             </ControlTemplate>
15                         </Setter.Value>
16                     </Setter>
17                 </MultiTrigger>
18             </Style.Triggers>
19         </Style>

免责声明:文章转载自《WPF用样式实现TextBox的虚拟提示效果》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇xshell各个版本下载IDEA自用插件,驼峰插件,MyBatis插件,Lombok插件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

非对称加密----加解密和数字签名

一、对称加密 对称加密:加密和解密使用相同密钥的加密算法。 对称加密的特点: 1)、速度快,通常在消息发送方需要加密大量数据时使用。 2)、密钥是控制加密及解密过程的指令。 3)、算法是一组规则,规定如何进行加密和解密。 典型应用场景:离线的大量数据加密(用于存储的) 常用的加密算法:DES、3DES、AES、TDEA、Blowfifish、RC2、RC...

多个iframe的刷新问题

我们的系统有个公用的弹出框,弹出框html结构是在顶层页面里的。一般弹出框里的内容,单独做个页面,嵌入iframe里面。就可以在弹出框里显示要显示的内容。但是出现一个问题是,有时候弹出框里的操作不是单一的,就像这次的操作。在弹出框里有个分拣操作,这个操作力选中目标文件夹的时候又有一个新建文件夹的操作。选择新建文件夹-新建文件夹成功后,还需要返回到分拣操作的...

WPF自定义控件与样式(10)-进度控件ProcessBar自定义样

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。   本文主要内容: ProcessBar自定义标准样式; ProcessBar自定义环形进度样式; 二.ProcessBar标准样式   效果图:     P...

Mybatis分页插件PageHelper简单使用

1. 引入分页插件 引入分页插件有下面2种方式,推荐使用 Maven 方式。 1). 引入 Jar 包 你可以从下面的地址中下载最新版本的 jar 包 https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/ http://repo1....

JQ版本对比

目前jQuery有三个大版本:1.x:兼容ie678,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日)2.x:不兼容ie678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)...

shell 脚本操作informix数据库

shell 脚本操作informix数据库的简单模板: functionName(){ dbaccess << ! database 库名; sql语句; ! } 栗子1:更新数据 functionName(){ nameStr=$1 idStr=$2 dbaccess << ! da...