WPF自定义WaterTextBox
2016-03-30 09:53
274 查看
今天在看javaScript中发现有onblur和onfocus事件,很轻松了实现了有水印的TextBox,寻思着wpf中是不是也有类似的方法,查找官网api,发现了有LostFocus和GotFocus两个方法,不过,要实现类似效果,你的重写他。代码很简单,直接上:
public class WaterTextBox : TextBox
{
public WaterTextBox()
{
this.Text = "输入内容";
this.Foreground = Brushes.Gray;
}
protected override void OnLostFocus(System.Windows.RoutedEventArgs e)
{
base.OnLostFocus(e);
if (string.IsNullOrEmpty(this.Text))
{
this.Text = "输入内容";
this.Foreground = Brushes.Gray;
}
}
protected override void OnGotFocus(System.Windows.RoutedEventArgs e)
{
base.OnGotFocus(e);
if (this.Text == "输入内容" && this.Foreground == Brushes.Gray)
{
this.Clear();
this.Foreground = Brushes.Black;
}
}
}
定义一个WaterTextBox继承TextBox,重写OnLostFocus和OnGotFocus,前台代码更简单,如下:
<Window x:Class="wpfLostFocus.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:wpfLostFocus"
Title="MainWindow" Height="350" Width="525">
<Grid>
<my:WaterTextBox Width="100" Height="25"></my:WaterTextBox>
<TextBox Margin="208,198,209,92" Text="nihao"/>
</Grid>
</Window>
public class WaterTextBox : TextBox
{
public WaterTextBox()
{
this.Text = "输入内容";
this.Foreground = Brushes.Gray;
}
protected override void OnLostFocus(System.Windows.RoutedEventArgs e)
{
base.OnLostFocus(e);
if (string.IsNullOrEmpty(this.Text))
{
this.Text = "输入内容";
this.Foreground = Brushes.Gray;
}
}
protected override void OnGotFocus(System.Windows.RoutedEventArgs e)
{
base.OnGotFocus(e);
if (this.Text == "输入内容" && this.Foreground == Brushes.Gray)
{
this.Clear();
this.Foreground = Brushes.Black;
}
}
}
定义一个WaterTextBox继承TextBox,重写OnLostFocus和OnGotFocus,前台代码更简单,如下:
<Window x:Class="wpfLostFocus.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:wpfLostFocus"
Title="MainWindow" Height="350" Width="525">
<Grid>
<my:WaterTextBox Width="100" Height="25"></my:WaterTextBox>
<TextBox Margin="208,198,209,92" Text="nihao"/>
</Grid>
</Window>
相关文章推荐
- C#及WPF获取本机所有字体和颜色的方法
- WPF MVVM示例讲解
- WPF实现时钟特效
- VB的TextBox文本框实现垂直居中显示的方法
- PowerShell中调用WPF生成炫酷窗口实例
- WinForm实现为TextBox设置水印文字功能
- VB.NET中TextBox的智能感知应用实例
- WPF实现类似360安全卫士界面的程序源码分享
- C#中WPF使用多线程调用窗体组件的方法
- WPF实现渐变淡入淡出的登陆窗口效果
- C#禁止textbox复制、粘贴、剪切及鼠标右键的方法
- C#中TextBox实现输入提示功能的方法
- C#与js实现去除textbox文本框里面重复记录的方法
- asp.net中绑定TextBox回车事件的解决方法
- WPF的数据绑定详细介绍
- WPF绑定实例详解
- 关于WPF使用MultiConverter控制Button状态的详细介绍
- TextBox的宽度随输入的文本的大小而改变的js代码
- .NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法
- asp.net TextBox回车触发事件 图片在img显示