【问题标题】:Place holder or watermark in TextBox windows 8TextBox windows 8中的占位符或水印
【发布时间】:2012-08-23 17:21:15
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • Windows 8.1 现在在 XAML 框架本身中提供此功能作为 TextBox 上的 PlaceholderText。
  • @kgiannakakis Sergey 已经给出了 8.1 的答案
  • 我错过了。我投了很高的票来推动它。您还编辑了答案以包含此信息,这是一件好事。

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


【解决方案1】:

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

<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 下载它

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      WinRT Xaml 工具包有一个 WatermarkTextbox 控件: http://winrtxamltoolkit.codeplex.com/

      您也可以通过 NuGet 获得它,它带有其他几个有用的控件。

      您可以通过引用页面属性中的工具包来使用它:

      xmlns:xtk="using:WinRTXamlToolkit.Controls"
      

      然后像这样访问 WaterMarkTextBox:

      <xtk:WatermarkTextBox WatermarkText="some text" />
      

      编辑:

      Callisto 也提供了水印 TextBox: https://github.com/timheuer/callisto

      它只是尚未在自述文件中提及。

      【讨论】:

      • 请注意,callisto 也提供了一个 WatermarkTextbox。它比 WinRT Xaml Tollkit 更轻(对于这样的控件来说有点“重”)。
      • 谢谢,我会把它添加到我的答案中!
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-02-14
          • 2014-03-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-02
          相关资源
          最近更新 更多