This article has been localized into Hebrew by the community.
פקד תיבת סיסמה (PasswordBox)
כדי לערוך טקסט רגיל ב WPF יש לנו את תיבת הטקסט TextBox, אבל מה לגבי עריכת סיסמה? הפונקציונליות מאד דומה, אבל אנחנו רוצים ש WPF יציג משהו שונה מהתווים האמיתיים כשמקלידים סיסמה, כדי להסתיר אותם מפני אנשים חטטניים שמסתכלים מעבר לכתף. למטרה זו, ל WPF יש פקד PasswordBox, תיבת סיסמה, שהוא קל לשימוש בדיוק כמו תיבת הטקסט. הרשו לי להראות זאת בדוגמה:
<Window x:Class="WpfTutorialSamples.Basic_controls.PasswordBoxSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="PasswordBoxSample" Height="160" Width="300">
<StackPanel Margin="10">
<Label>Text:</Label>
<TextBox />
<Label>Password:</Label>
<PasswordBox />
</StackPanel>
</Window>
בצילום המסך, הכנסתי בדיוק את אותו הטקסט לשתי תיבות הטקסט, אבל בגירסת הסיסמה, התווים הוחלפו בנקודות. למעשה אפשר לשלוט על אילו תווים יוצגו במקום התווים האמיתיים, תוך שימוש בתכונה PasswordChar:
<PasswordBox PasswordChar="X" />
במקרה הזה, התו X יוצג במקום הנקודות. אם יש לך צורך לשלוט על אורך הסיסמה, יש את התכונה MaxLength בשבילך:
<PasswordBox MaxLength="6" />
השתמשתי בשתי התכונות בדוגמה המעודכנת הזו:
<Window x:Class="WpfTutorialSamples.Basic_controls.PasswordBoxSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="PasswordBoxSample" Height="160" Width="300">
<StackPanel Margin="10">
<Label>Text:</Label>
<TextBox />
<Label>Password:</Label>
<PasswordBox MaxLength="6" PasswordChar="X" />
</StackPanel>
</Window>
שימו לב שכעת התווים הם X במקום, ושהרשיתי להכניס רק 6 תווים בתיבה.
תיבת סיסמה וקישוריות (binding)
כשצריך לקבל את הסיסמה מתיבת הסיסמה, ניתן להשתמש בתכונה Password בקוד-מאחור. לעומת זאת, מסיבות של בטיחות, תכונת Password לא מיושמת כתכונת-תלות, מה שאומר שאי אפשר לקשר (bind) אליה.
ייתכן שזה יהיה חשוב בשבילך, וייתכן שלא - כפי שכבר נאמר, עדיין ניתן יהיה לקרוא את הסיסמה מהקוד-מאחור, אבל ליישומי MVVM, או סתם אם אוהבים להשתמש בקישוריות נתונים, פותחה דרך לעקיפת הבעיה. אפשר לקרוא עוד הרבה בנושא כאן: http://blog.functionalfun.net/2008/06/wpf-passwordbox-and-data-binding.html