在文本框窗口8中放置持有者或水印

时间:2012-08-29 06:39:49

标签: c# windows-8 microsoft-metro .net-4.5

当用户未输入任何内容且TextBox空闲时,我想在TextBox中显示占位符文字。

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

完成

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

由于

5 个答案:

答案 0 :(得分:24)

编辑他们引入了新属性

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

请参阅Sergey Aldoukhov's answer


对我而言,这是我得到的有效解决方案。
如果有任何人有更好的解决方案,请回答。

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