天天看點

silverlight-帶水印的自定義TextBox控件(版本2)

兩個版本的差別:

其實是有本質的差別的。

之前那個版本隻能設定“文本水印”,相當有局限性。現在的版本是可以自定義水印内容的。譬如,可以為button,rectangle,ellipsed... 

控件SuperTextBox的模闆,樣式都是儲存在一個叫“Generic.xaml”檔案裡面的。在第一次建立“silverlight 模闆化控件”的時候,這個檔案會自動産生。這裡将TextBox的模闆添加進入,并修改。

完整的

完整的Generic.xaml

 在上面的"Generic.xaml"檔案的SuperTextBox模闆中修改新增了一下内容

新增一個UserControl,即水印内容。

取名随意,這裡為“watermarkContent”,并且綁定Content屬性為“WaterMark”

 增加兩個狀态

狀态為了控制水印是否出現。其實本質是調節水印的透明度。

<a></a>

因為模闆中綁定了一個新的屬性WaterMark,是以需要在托管代碼進行注冊。并且用屬性Watermark儲存。

為了控制水印狀态需要增加一個TextChanged事件。

完整托管代碼

完整的SuperTextBox托管代碼

需加上命名空間local,local指向的是SuperTextBox所在的命名空間。

 本文轉自 Ron Ngai 部落格園部落格,原文連結:http://www.cnblogs.com/rond/archive/2012/08/23/2652271.html  ,如需轉載請自行聯系原作者

繼續閱讀