Заполнитель или водяной знак в TextBox windows 8

Я хочу отображать замещающий текст в TextBox, когда пользователь ничего не набрал, а TextBox бездействует.

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

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

Спасибо


person Inder Kumar Rathore    schedule 29.08.2012    source источник
comment
Windows 8.1 теперь предоставляет эту функциональность в самой структуре XAML как PlaceholderText в TextBox.   -  person kgiannakakis    schedule 26.02.2014
comment
@kgiannakakis Сергей уже дал ответ для 8.1   -  person Inder Kumar Rathore    schedule 26.02.2014
comment
Я пропустил это. Я проголосовал за то, чтобы поднять его. Хорошо, что вы также отредактировали свой ответ, включив в него эту информацию.   -  person kgiannakakis    schedule 27.02.2014


Ответы (5)


Отредактируйте для 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 также делает то же самое, проверьте пример здесь.

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

person Inder Kumar Rathore    schedule 29.08.2012

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

<TextBox
    x:Name="UserName"
    PlaceholderText="User Name"
    />
person Sergey Aldoukhov    schedule 21.02.2014

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

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

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

xmlns:xtk="using:WinRTXamlToolkit.Controls"

И просто войдите в WaterMarkTextBox следующим образом:

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

Изменить .:

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

Его просто еще нет в ридми.

person Ostkontentitan    schedule 23.05.2013
comment
Обратите внимание, что callisto также предоставляет WatermarkTextbox. Он легче, чем WinRT Xaml Tollkit (который немного тяжел для такого элемента управления). - person Nicolas Voron; 24.05.2013
comment
Спасибо, я добавлю это к своему ответу! - person Ostkontentitan; 24.05.2013

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

person Dominik    schedule 29.08.2012

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

person kakun06    schedule 29.08.2012