Держатель места или водяной знак в окнах TextBox 8 - программирование

Держатель места или водяной знак в окнах TextBox 8

Я хочу показать текст-заполнитель в TextBox, когда пользователь ничего не набрал, а TextBox не используется.

В Andriod это можно сделать, используя android:hint="some Text"
В iPhone это можно сделать как textFild.placeholder = "some text";

Как я могу сделать это в приложениях с окнами 8?

Спасибо

4b9b3361

Ответ 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 также делает такую ​​же проверку здесь.

P.S. Я создал пользовательский элемент управления для TextBox, вы можете скачать его из здесь

Ответ 2

В Windows 8.1 TextBox имеет свойство PlaceholderText:

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

Ответ 3

У WinRT Xaml Toolkit есть элемент управления WatermarkTextbox: http://winrtxamltoolkit.codeplex.com/

Вы можете получить его также через NuGet, он поставляется с несколькими другими полезными элементами управления.

вы можете использовать его, указав инструментарий в свойстве страницы:

xmlns:xtk="using:WinRTXamlToolkit.Controls"

И просто получить доступ к WaterMarkTextBox следующим образом:

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

Edit:.

Callisto предлагает также водяной знак TextBox: https://github.com/timheuer/callisto

Его просто не упоминается в readme.

Ответ 4

Если вы используете WPF, вы ищете водяной знак, посмотрите следующий stackoverflow answer

Ответ 5

Что вы можете сделать, так это то, что вы можете установить текст по умолчанию и очистить его, используя текстовое поле с текстом, или вы можете использовать текстовое поле водяного знака, см. here