基本信息
源码名称:C# wpf textbox 样式实例(水印)源码
源码大小:0.07M
文件格式:.rar
开发语言:C#
更新时间:2014-06-06
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using System.Windows;
namespace TestTextBoxWaterMark
{
public class WateMarkTextBox:TextBox
{
private TextBlock wateMarkTextBlock;
private TextBox wateMarkTextBox;
static WateMarkTextBox()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(WateMarkTextBox), new FrameworkPropertyMetadata(typeof(WateMarkTextBox)));
}
public WateMarkTextBox()
{
this.GotFocus = new RoutedEventHandler(WateMarkTextBox_GotFocus);
this.LostFocus = new RoutedEventHandler(WateMarkTextBox_LostFocus);
this.TextChanged = new TextChangedEventHandler(WateMarkTextBox_TextChanged);
}
void WateMarkTextBox_LostFocus(object sender, RoutedEventArgs e)
{
if (this.wateMarkTextBox!=null && !string.IsNullOrWhiteSpace(this.wateMarkTextBox.Text))
{
this.wateMarkTextBlock.Visibility = Visibility.Hidden;
}
else
{
this.wateMarkTextBlock.Visibility = Visibility.Visible;
}
}
void WateMarkTextBox_GotFocus(object sender, RoutedEventArgs e)
{
this.wateMarkTextBlock.Visibility = Visibility.Hidden;
}
void WateMarkTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (this.wateMarkTextBox != null && !string.IsNullOrWhiteSpace(this.wateMarkTextBox.Text) || !this.IsFocused)
{
this.wateMarkTextBlock.Visibility = Visibility.Hidden;
}
else
{
this.wateMarkTextBlock.Visibility = Visibility.Visible;
}
}
public string WateMark
{
get { return (string)GetValue(WateMarkProperty); }
set { SetValue(WateMarkProperty, value); }
}
public static DependencyProperty WateMarkProperty =
DependencyProperty.Register("WateMark", typeof(string), typeof(WateMarkTextBox), new UIPropertyMetadata("水印"));
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
this.wateMarkTextBlock = this.GetTemplateChild("ChildWateMark") as TextBlock;
this.wateMarkTextBox = this.GetTemplateChild("ChildTextBox") as TextBox;
}
}
}