2012-04-10 4 views
2

私はWindows phoneアプリケーションを開発しています。そのユーザにログインするように頼んでいます。パスワードボックスのあるイベントでパスワード文字を表示

ログインページでは、パスワードを入力する必要があります。

今私が欲しいのは、ユーザーにパスワードの文字を表示するように選択されたチェックボックスを付けることです。

私は、パスワード文字を表示するためのパスワードボックスのプロパティを見ていません。

どうかしてください。

+0

なぜTextBoxを使用しないのですか? – tomasmcguinness

答えて

18

がちょうど思考...それはPasswordBoxで可能だとは思わないが、あなたは隠されたテキストボックスを使用して同じ結果を達成する可能性があり、ユーザーがチェックボックスをクリックしますPasswordBoxを非表示にしてTextBoxを表示するだけです。彼が再びクリックすると、あなたは再び彼らの可視性の状態を切り替える、というように...

編集

そして、ここではそれがどのようにあります!

だけで、ページを追加のStackPanelにContentPanelを変更し、この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できます!

+0

チェックボックスをチェックするとグリッチが表示されます – rakesh

+0

グリッチ@rakeshkumarとは何ですか?あなたはそれを記述できますか? –

+0

おい!これは素晴らしいです。とても簡単。ありがとう!! –

1

デフォルトのパスワードボックスでは、必要な機能を実装することはできません。あなたがここに見つけることができます

より多くの情報:http://social.msdn.microsoft.com/Forums/en/wpf/thread/98d0d4d4-1463-481f-b8b1-711119a6ba99

+0

その投稿はかなり古く、今はPasswordBox.Passwordの本質を反映していません。なぜなら、これは依存関係プロパティなので、バインドできるからです! –

0

テキストボックスから継承する独自のコントロールを作成することもできますが、各文字の後に*を置き換えて、ページ上のプライベート変数内に真の値を格納します。チェックボックスを使用して、テキストボックスの値が真の値または*値を表示するかどうかを切り替えることができます。

それは優雅な解決策でもベストプラクティスでもありませんが、あなたがそれに喜んで喜んでいれば、それはまだ選択肢です。

関連する問題