TOC

This article has been localized into German by the community.

Grundlegende Kontrollobjekte:

Das PasswordBox-Kontrollobjekt

Für die Eingabe von regulärem Text bietet uns WPF die TextBox, aber was nutzen wir für die Eingabe von Passwörtern? Die Funktionalität ist nahezu identisch, aber wir möchten, dass WPF die tatsächlichen Zeichen durch etwas anderes ersetzt, damit niemand hinter uns durch einen Blick auf den Monitor unser Passwort sieht. Für diesen Zweck bietet WPF das PasswordBox-Kontrollobjekt, welches genauso unkompliziert ist wie die Textbox. Hier ist ein Beispiel:

<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>

In diesem Screenshot habe ich den selben Text in die zwei Textboxen eingegeben, aber in der Passwort-Version werden die Zeichen durch einen Punkt ersetzt. Welches Zeichen verwendet wird, um die anderen zu ersetzen, lässt sich durch die PasswordChar Eigenschaft einstellen:

<PasswordBox PasswordChar="X" />

In diesem Fall wird das "X"-Zeichen statt den Punkten verwendet. Falls Sie die Maximallänge des Passwortes einstellen wollen, können Sie die MaxLength Eigenschaft verwenden:

<PasswordBox MaxLength="6" />

Hier ein Beispiel mit beiden Eigenschaften:

<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>

Beachten Sie, dass die Zeichen jetzt alle ein "X" sind, und dass nur sechs Zeichen eingegeben werden konnten.

PasswordBox und Binding

Wenn Sie den Wert der PasswordBox auslesen müssen, können Sie im Code-behind die Password-Eigenschaft verwenden. Aus Sicherheitsgründen ist die Password-Eigenschaft nicht als Dependency Property implementiert, was bedeutet, dass man nicht daran binden kann.

Diese Einschränkung kann für Sie mehr oder weniger relevant sein. Wie schon gesagt, der Wert kann immer noch im Code-behind ausgelesen werden. Für MVVM-Implementationen, oder falls Sie einfach ein Fan von Data-Bindings sind, gibt es einen Workaround. Sie können auf folgender Seite mehr darüber lesen: http://blog.functionalfun.net/2008/06/wpf-passwordbox-and-data-binding.html


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!