16

我想在TextBox用户没有输入任何内容并且TextBox处于空闲状态时显示占位符文本。

在 Andriod 中可以使用 android:hint="some Text"
在 iPhone 中完成textFild.placeholder = "some text";

如何在 Windows 8 Metro 应用程序中执行此操作?

谢谢

4

5 回答 5

24

编辑他们引入了一个新属性

<TextBox x:Name="UserName" PlaceholderText="User Name"/>

请参阅Sergey Aldoukhov 的回答


对我来说,这是我得到的工作解决方案。
如果有人有更好的解决方案,请回答。

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你可以从这里下载

于 2012-08-29T08:42:30.337 回答
8

在 Windows 8.1 中,TextBox 有一个 PlaceholderText 属性:

<TextBox
    x:Name="UserName"
    PlaceholderText="User Name"
    />
于 2014-02-21T06:42:42.633 回答
6

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

它只是在自述文件中没有提到。

于 2013-05-23T06:40:15.017 回答
1

如果您使用 WPF,您正在寻找水印,请查看以下 stackoverflow答案

于 2012-08-29T06:44:36.273 回答
1

您可以做的是设置默认文本并使用文本框的点击事件清除它,或者您可以使用水印文本框,请参见此处

于 2012-08-29T06:47:30.297 回答