天天看點

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

好記性不如爛筆頭

繼續閱讀