我正在使用MVVM模式在WPF中编写应用程序,并且实际上通常会使用TextBox
es。 我不想使用标签的用户知道用户的文本框是什么,也就是我不想是这样的:WPF中文本框的焦点相关文本更改
<TextBlock> Name: </TextBlock>
<TextBox />
相反,我想TextBox
遏制它自己的标签。如果将光标显示在文本框中,即TextBox
获得焦点,我想说明文字消失
<TextBox>Name</TextBox>
:静态,你会表达出来是这样的。如果TextBox
留空并且失去焦点,则应再次显示说明文字。它类似于StackOverflow的搜索文本框或Firefox的搜索文本框。 (如果你不确定我的意思,请告诉我)。
One TextBox的标签可能在运行时发生变化,依赖于例如一个ComboBox
的选定元素或我的ViewModel中的值。 (就像在Firefox的搜索文本框中一样,如果您从搜索引擎菜单中选择谷歌,那么如果您选择“雅虎”将其设置为“雅虎”,那么文本框的标签将更改为“Google”)。因此我希望能够绑定标签的内容。
请考虑我可能已经在Text
-属性TextBox
上拥有Binding。
如何实现这样的行为,并使其可重用为我的任何TextBox
的?代码是受欢迎的但不是必需的;对做什么的描述就足够了。
预先感谢您。
谢谢!这帮了很多。我不知道这种TextBox被称为水印文本框。在google中输入后,我发现了更多信息。只需制作边界的标签子项,并且您的示例工作得很好。 – Simon 2010-06-12 21:25:18
很高兴帮助。我花了很多时间寻找类似的东西。 – mfanto 2010-06-12 21:48:33
剩下的一个问题:如果我在TextBox的Tag属性上设置了绑定,则只要绑定的标签属性发生更改,标签的值就不会更新。有任何想法吗? – Simon 2010-06-12 22:12:13