WPF教程(二十)密碼框

WPF中編輯常規的文字都是使用文本框,但是如果是輸入密碼呢?功能應該是一樣的,但是我們不想周邊的人看着我們一個字母一個字母的輸入,這樣密碼就被泄漏了,因此我們想用別的字符來替代真實密碼的顯示。出於這個目的,WPF有一個密碼框控件,用起來和文本框一樣。

<span style="font-size:14px;"><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></span>
A simple PasswordBox control

在上面的截屏中,我在兩個框裏輸入了完全一樣的字符串,然而在密碼框裏面,字符串顯示爲幾個點。你還能控制使用什麼樣的字符來替代真實字符,用PasswordChar屬性就好:

<span style="font-size:14px;"><PasswordBox PasswordChar="X" /></span>
這樣的話X就會替代那些點,你還可以控制顯示字符的長度:
<span style="font-size:14px;"><PasswordBox MaxLength="6" /></span>
下面的例子我把兩個屬性都用上了:
<span style="font-size:14px;"><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></span>
A simple PasswordBox control, with a couple of extra properties set

注意現在密碼顯示爲6個X。

密碼框的綁定

當你需要獲取密碼框的密碼時,在後臺代碼使用Password屬性。然而,出於安全考慮,Password屬性並不是一個依賴屬性,也就意外着無法綁定。

這一點很重要。你仍然可以在後臺代碼讀到密碼,但是,如果要實現視圖模型,或者你熱衷於數據綁定,那就需要另外一種解決辦法了。你可以閱讀下面的鏈接來了解:http://blog.functionalfun.net/2008/06/wpf-passwordbox-and-data-binding.html




發佈了12 篇原創文章 · 獲贊 43 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章