私はWindowsPhoneアプリケーションを開発しています。その中で、ユーザーにログインを依頼します。
ログインページで、ユーザーはパスワードを入力する必要があります。
今私が欲しいのは、選択したときにパスワードの文字を表示するチェックボックスをユーザーに与えることです。
パスワードボックスにパスワード文字を表示するプロパティが表示されていません。
それを行う方法を提案してください。
私はWindowsPhoneアプリケーションを開発しています。その中で、ユーザーにログインを依頼します。
ログインページで、ユーザーはパスワードを入力する必要があります。
今私が欲しいのは、選択したときにパスワードの文字を表示するチェックボックスをユーザーに与えることです。
パスワードボックスにパスワード文字を表示するプロパティが表示されていません。
それを行う方法を提案してください。
PasswordBoxでそれが可能だとは思わないでください...単なる考えですが、非表示のTextBoxを使用して同じ結果を達成し、ユーザーがCheckBoxをクリックすると、PasswordBoxを非表示にしてTextBoxを表示するだけです。彼がもう一度クリックすると、可視性の状態が再び切り替わります...
編集
そして、これがその方法です!
ページを追加し、ContentPanel を StackPanel に変更して、次の XAML コードを追加するだけです。
<PasswordBox x:Name="MyPasswordBox" Password="{Binding Text, Mode=TwoWay, ElementName=MyTextBox}"/>
<TextBox x:Name="MyTextBox" Text="{Binding Password, Mode=TwoWay, ElementName=MyPasswordBox}" Visibility="Collapsed" />
<CheckBox x:Name="ShowPasswordCharsCheckBox" Content="Show password" Checked="ShowPasswordCharsCheckBox_Checked" Unchecked="ShowPasswordCharsCheckBox_Unchecked" />
次に、ページ コードに次を追加します。
private void ShowPasswordCharsCheckBox_Checked(object sender, RoutedEventArgs e)
{
MyPasswordBox.Visibility = System.Windows.Visibility.Collapsed;
MyTextBox.Visibility = System.Windows.Visibility.Visible;
MyTextBox.Focus();
}
private void ShowPasswordCharsCheckBox_Unchecked(object sender, RoutedEventArgs e)
{
MyPasswordBox.Visibility = System.Windows.Visibility.Visible;
MyTextBox.Visibility = System.Windows.Visibility.Collapsed;
MyPasswordBox.Focus();
}
これは問題なく動作しますが、さらにいくつかの作業を行うと、これを完全に MVVM 化できます。
デフォルトの passwordbox では、必要な機能を実装することはできません。
ここで見つけることができる詳細情報: http://social.msdn.microsoft.com/Forums/en/wpf/thread/98d0d4d4-1463-481f-b8b1-711119a6ba99
テキストボックスから継承する独自のコントロールを作成できますが、各文字の後に * に置き換えて、ページのプライベート変数内に真の値を格納します。チェックボックスを使用すると、テキストボックスの値が真の値を表示するか、* の値を表示するかを切り替えることができます。
これは洗練されたソリューションではなく、ベスト プラクティスでもありません。