http://luacloud.com/2011/wpf-textbox-clearbutton-watermark.html

带水印,带清除按钮的TextBox
先发个牢骚!!!NND,一个上午都毁在Text属性上了!!!
我就是打算做一个带有清除按钮的文本框,这样,我写好了样式,可以在别的地方通用,省去了每个都到后台写清空代码的麻烦。
于是,参照这昨天写的 《WPF-没事做了个圆角文本框,并且右侧有控件》我就写了一个样式,可是一个上午,就一直在找怎么才能清空内容。一直都不得其法,后来无奈只能也靠后台去写,果然是没有完美的事情啊。
但是出了个意外,就是,当我在其他文本框上面应用样式的时候,这个怪事就是。。。文本框中的内容变成了我最开始写样式时写的Text的内容,这个效果就是,一共三个文本框,两个是可以更改Text内容,而一个不能更改。
我仔细看了一下,发现,原来是调用样式的<TextBox Style="{...}" Text=""/> 问题就出在了这个Text属性上。
当控件生成时,如果Text有值,无论是不是空值,那么在Style样式中<Setter Property="Text" Value=""/>是会失效的。所以如果要让其生效,那么不可以设置控件的Text属性
样式代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
< Style
x:Key = "ClearButtonTextBox"
TargetType = "{x:Type TextBox}" >
< Setter
Property = "TextAlignment"
|