1. 程式人生 > >WPF教程(二十)密碼框

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屬性並不是一個依賴屬性,也就意外著無法繫結。