0

PasswordBoxSilverlight 4でを設定して、空のときにPasswordBoxに「ここにパスワードを入力してください」というテキストが表示されるようにするにはどうすればよいですか?

行の先頭でカーソルが点滅しているときに、テキストをPasswordBoxに表示したいと思います。ユーザーが入力を開始すると、テキストが消え、デフォルトのパスワード文字が表示されます。ユーザーがパスワードを完全に消去すると、テキストが再度表示されます。

これは純粋なXAMLで可能ですか?

そうでない場合は、いくつかのイベントハンドラーとコードビハインドを使用したソリューションもいただければ幸いです。前もって感謝します!

4

2 に答える 2

0

たとえばGotFocus、LostFocusで、テキストボックスとパスワードボックスを切り替えてみてください

于 2011-11-07T11:07:15.237 に答える
0

次のソリューションを実装しました。純粋なXAMLではありませんが、大丈夫だと思います。XAMLでは、パスワードボックスと重なる「パスワードを入力してください」というテキストがPasswordBox後に続く。TextBlockPasswordBoxのイベントハンドラーでは、TextBlockは非表示になります。

<PasswordBox x:Name="PasswordBox"
             PasswordChanged="PasswordBox_PasswordChanged" />
<TextBlock x:Name="TextBlockEnterPassword" FontStyle="Italic"
           Text="Enter your password here" IsHitTestVisible="False"/>

(上記を1つのGridセルにまとめます。)

コードビハインドで、イベントハンドラーを追加します。

private void PasswordBox_PasswordChanged( object sender, RoutedEventArgs e )
{
    // If the user enters something in the passwordbox, hide
    // the "Enter password" text; if the user erases the field,
    // show the text.
    if ( PasswordBox.Password.Length == 0 )
        TextBlockEnterPassword.Visibility = Visibility.Visible;
    else
        TextBlockEnterPassword.Visibility = Visibility.Collapsed;
}
于 2011-11-08T12:23:49.260 に答える