当用户未输入任何内容且TextBox
空闲时,我想在TextBox
中显示占位符文字。
在Andriod中,可以使用android:hint="some Text"
来完成
在iPhone中,它可以textFild.placeholder = "some text";
我如何在Windows 8 metro应用程序中执行此操作?
由于
答案 0 :(得分:24)
编辑windows-8.1他们引入了新属性
<TextBox x:Name="UserName" PlaceholderText="User Name"/>
对我而言,这是我得到的有效解决方案。
如果有任何人有更好的解决方案,请回答。
private void OnTestTextBoxGotFocus(object sender, RoutedEventArgs e)
{
if (testTextBox.Text.Equals("Type here...", StringComparison.OrdinalIgnoreCase))
{
testTextBox.Text = string.Empty;
}
}
private void OnTestTextBoxLostFocus(object sender, RoutedEventArgs e)
{
if (string.IsNullOrEmpty(testTextBox.Text))
{
testTextBox.Text = "Type here...";
}
}
MS也会检查example here。
<击>的 P.S。我为TextBox
创建了一个自定义控件,您可以从here
答案 1 :(得分:8)
在Windows 8.1中,TextBox具有占位符文本属性:
<TextBox
x:Name="UserName"
PlaceholderText="User Name"
/>
答案 2 :(得分:6)
WinRT Xaml工具包有一个WatermarkTextbox控件: http://winrtxamltoolkit.codeplex.com/
你也可以通过NuGet获得它,它还有其他几个有用的控件。
您可以通过参考Page's属性中的工具包来使用它:
xmlns:xtk="using:WinRTXamlToolkit.Controls"
只需访问WaterMarkTextBox,就像这样:
<xtk:WatermarkTextBox WatermarkText="some text" />
修改:强>
Callisto也提供了水印TextBox: https://github.com/timheuer/callisto
它在自述文件中尚未提及。
答案 3 :(得分:1)
如果您使用的是WPF,那么您正在寻找水印,请查看以下stackoverflow answer
答案 4 :(得分:1)
您可以做的是设置默认文字并使用文本框的点击事件清除它,或者您可以使用水印文本框查看here