16

TextBoxユーザーが何も入力しておらず、TextBoxアイドル状態のときにプレースホルダーテキストを表示したい。

Andriodでは、 android:hint="some Text"
iPhoneでは次のように実行できます。textFild.placeholder = "some text";

Windows 8メトロアプリでそれを行うにはどうすればよいですか?

ありがとう

4

5 に答える 5

24

用に編集-8.1彼らは新しいプロパティを導入しました

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

SergeyAldoukhovの答えをご覧ください


私にとって、これは私が得た実用的なソリューションです。
誰かがより良い解決策を持っているなら、答えてください。

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 ToolkitにはWatermarkTextboxコントロールがあります: http ://winrtxamltoolkit.codeplex.com/

NuGetからも取得でき、他にもいくつかの便利なコントロールが付属しています。

ページのプロパティでツールキットを参照することで使用できます。

xmlns:xtk="using:WinRTXamlToolkit.Controls"

そして、次のようにWaterMarkTextBoxにアクセスするだけです。

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

編集。:

Callistoは透かしテキストボックスも提供しています: https ://github.com/timheuer/callisto

まだreadmeで言及されていません。

于 2013-05-23T06:40:15.017 に答える
1

WPFを使用している場合は、透かしを探しています。次のスタックオーバーフローの回答を確認してください

于 2012-08-29T06:44:36.273 に答える
1

あなたができることは、デフォルトのテキストを設定し、テキストボックスのタップされたイベントを使用してそれをクリアするか、透かしテキストボックスを使用することができますここを参照してください

于 2012-08-29T06:47:30.297 に答える