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