WPF-带清除按钮的文本框(更新水印效果)

本文介绍了如何在WPF中创建一个具备清除按钮和水印效果的TextBox。作者在尝试实现这个功能时遇到了Text属性的问题,导致样式无法正常应用。最终发现,当TextBox的Text属性被设置时,样式中的Text Setter会失效。为了解决这个问题,必须避免在控件上直接设置Text属性,以确保样式能够正确显示清除按钮和水印。
摘要由CSDN通过智能技术生成

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

带水印,带清除按钮的TextBox

带水印,带清除按钮的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=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值