博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 带有watermark的文本输入框
阅读量:5090 次
发布时间:2019-06-13

本文共 1870 字,大约阅读时间需要 6 分钟。

 用户名输入框:

1.没有获取焦点时, 如果输入内容为空,显示Mask文本:Please input username。如果不为空,显示文本内容。

2.获取焦点后, 如果是Mask文本,清除。如果不是,保留输入的内容。

这种例子很多,相信大家都熟悉。

 

public class MaskTextBox : TextBox    {        #region MaskText        ///         /// view sort style, desc arrow        ///         public static readonly DependencyProperty MaskTextProperty =                   DependencyProperty.Register("MaskText", typeof(string), typeof(MaskTextBox));        public string MaskText        {            get { return (string)GetValue(MaskTextProperty); }            set { SetValue(MaskTextProperty, value); }        }        #endregion        public MaskTextBox()        {            Loaded += (sender, args) =>                {                    if (string.IsNullOrEmpty(base.Text))                    {                        base.Text = MaskText;                        base.Foreground = Brushes.Gray;                    }                };            base.GotFocus += (sender, args) =>            {                base.Foreground = Brushes.Black;                if (base.Text == MaskText)                    base.Text = string.Empty;            };            base.LostFocus += (sender, args) =>            {                if (!string.IsNullOrEmpty(base.Text))                    return;                base.Text = MaskText;                base.Foreground = Brushes.Gray;            };        }        public new string Text        {            get            {                if (base.Text == MaskText)                    return string.Empty;                else                    return base.Text;            }            set { base.Text = value; }        }    }

  

   调用很简单:

<local:MaskTextBox Width="200" Height="30"   Margin="20,10,10,10" x:Name="tbUserName" MaskText="Please Input Username"/>

如果用触发器等等,实现起来很麻烦,做了一半做不下去了,所以这么干。

 

转载于:https://www.cnblogs.com/xiaokang088/archive/2012/09/05/2672070.html

你可能感兴趣的文章
JPG、PNG和GIF图片的基本原理及优化方法
查看>>
Python中os和shutil模块实用方法集…
查看>>
35.使用FileOutputStream类向文本文件写数据
查看>>
Excel表格如何设置密码 Excel2003/2007/2010设置密码教程
查看>>
sqlserver日志文件太大解决方法
查看>>
第三十五章 metrics(3)- codahale-metrics基本使用
查看>>
第十二章 redis-cluster搭建(redis-3.2.5)
查看>>
匹夫细说C#:不是“栈类型”的值类型,从生命周期聊存储位置
查看>>
超时时间已到。在操作完成之前超时时间已过或服务器未响应。 (.Net SqlClient Data Provider)...
查看>>
练习2-11 计算分段函数[2] (10 分)
查看>>
从零开始系列之vue全家桶(1)安装前期准备nodejs+cnpm+webpack+vue-cli+vue-router
查看>>
ASP.NET缓存 Cache之数据缓存
查看>>
bzoj3529: [Sdoi2014]数表
查看>>
SSH三大框架 整合必备jar包
查看>>
什么是电子商务?电子商务面临的几个关键问题及解决办法?电子商务的核心是什么?B2C电子商务运营的核心是什么 ?...
查看>>
Jsp抓取页面内容
查看>>
AJAX与servlet的组合,最原始的
查看>>
大三上学期软件工程作业之点餐系统(网页版)的一些心得
查看>>
DP 简单题 之 poj 1163
查看>>
P1136 迎接仪式
查看>>