当前位置: 首页 > news >正文

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

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

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

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

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

  效果图:

  这里我用到了一个属性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>

 

相关文章:

  • ReactiveCocoa学习
  • [POJ2411]Mondriaan's Dream
  • CentOS7防火墙
  • vue.js 初步学习资源
  • Atlassian发布JIRA项目组合管理解决方案
  • 图片后门恶意捆绑工具FackImageexploer
  • php扩展模块安装
  • Android Studio 3.0 Android 分析器 | 中文教学视频
  • GeoIP2 数据库更新地址
  • 个人常用iOS第三方库以及XCode插件介绍
  • 杭州数澜联合创始人 \u0026 CTO 江敏:大数据思维和大数据冶炼 —— 拒绝坐着金山吃馒头...
  • 重磅干货不容错过!2017云栖大会汇总资料,速来领取!
  • Linux—CentOS7,玩转samba服务,基于身份验证的共享
  • initial ram filesystem
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • HashMap ConcurrentHashMap
  • Javascript Math对象和Date对象常用方法详解
  • JAVA多线程机制解析-volatilesynchronized
  • js对象的深浅拷贝
  • js中的正则表达式入门
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Node + FFmpeg 实现Canvas动画导出视频
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • pdf文件如何在线转换为jpg图片
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • SQLServer插入数据
  • text-decoration与color属性
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 计算机常识 - 收藏集 - 掘金
  • 配置 PM2 实现代码自动发布
  • 如何设计一个比特币钱包服务
  • 数据科学 第 3 章 11 字符串处理
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • (2020)Java后端开发----(面试题和笔试题)
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (pojstep1.3.1)1017(构造法模拟)
  • (windows2012共享文件夹和防火墙设置
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)项目管理杂谈-我所期望的新人
  • (状压dp)uva 10817 Headmaster's Headache
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ./configure,make,make install的作用(转)
  • .NET BackgroundWorker
  • .NET CORE Aws S3 使用
  • .NET Framework 4.6.2改进了WPF和安全性