天天看点

silverlight-带水印的TextBox

在silverlight2里面,提供了textbox的水印watermark功能。但是之后的版本就把这个功能给删了。关于silverlight2里面的水印功能可以参考这篇文章《一步一步学silverlight 2系列(2):基本控件》。之后想用水印唯有自己写一个了。

以下是我自己写的一个带水印的textbox。

除了增加一个属性之外,还需要增加一些保存区别于正常状态的属性的全局变量。

在textbox里面我们可以发现这两个事件是override标记的,所以可以重载他们。

类似于初始化,先验检测水印是否存在,而且设置水印。这个我将代码写在sizechanged事件里面。为什么要写在这里可以参考另外一篇文章,关于控件的生命周期的《silverlight 的控件生命周期 - 木野狐(neil chen)》。另外要将_usercolor和_useropacity初始化。

sizechanged事件的代码如下:

silverlight-带水印的TextBox

带水印的textbox

local是命名空间,是mytextbox类所在的命名空间。本机是这样写的:xmlns:local="clr-namespace:textboxwatermark"

未获取焦点:

silverlight-带水印的TextBox

获取焦点并输入

silverlight-带水印的TextBox

好记性不如烂笔头

继续阅读