zoukankan      html  css  js  c++  java
  • WPF 带有watermark的文本输入框

     用户名输入框:

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

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

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

    public class MaskTextBox : TextBox
        {
            #region MaskText
            /// <summary>
            /// view sort style, desc arrow
            /// </summary>
            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"/>

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

  • 相关阅读:
    mac zsh选择到行首的快捷键
    phalcon下拉列表
    tinycore remaster方法
    bundle安装方法
    centos7安装avahi
    pydoc介绍
    macosx下apache的默认用户为daemon
    centos配置ssh免密码登录后,仍提示输入密码
    xampp默认项目文件夹htdocs
    微信开发:"errcode": -1000,"errmsg": "system error"错误的解决办法
  • 原文地址:https://www.cnblogs.com/xiaokang088/p/2672070.html
Copyright © 2011-2022 走看看