我想在TextBox
用户没有输入任何内容并且TextBox
处于空闲状态时显示占位符文本。
在 Andriod 中可以使用 android:hint="some Text"
在 iPhone 中完成textFild.placeholder = "some text";
如何在 Windows 8 Metro 应用程序中执行此操作?
谢谢
我想在TextBox
用户没有输入任何内容并且TextBox
处于空闲状态时显示占位符文本。
在 Andriod 中可以使用 android:hint="some Text"
在 iPhone 中完成textFild.placeholder = "some text";
如何在 Windows 8 Metro 应用程序中执行此操作?
谢谢
编辑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 也做同样的检查这里的例子。
PS我已经创建了一个自定义控件,TextBox
你可以从这里下载
在 Windows 8.1 中,TextBox 有一个 PlaceholderText 属性:
<TextBox
x:Name="UserName"
PlaceholderText="User Name"
/>
WinRT Xaml 工具包有一个 WatermarkTextbox 控件: http ://winrtxamltoolkit.codeplex.com/
您也可以通过 NuGet 获得它,它带有其他几个有用的控件。
您可以通过引用页面属性中的工具包来使用它:
xmlns:xtk="using:WinRTXamlToolkit.Controls"
只需像这样访问 WaterMarkTextBox :
<xtk:WatermarkTextBox WatermarkText="some text" />
编辑。:
Callisto 也提供水印文本框: https ://github.com/timheuer/callisto
它只是在自述文件中没有提到。
如果您使用 WPF,您正在寻找水印,请查看以下 stackoverflow答案
您可以做的是设置默认文本并使用文本框的点击事件清除它,或者您可以使用水印文本框,请参见此处