KennwortfeldPassword box

Bei einem Kennwortfeld handelt es sich um ein Texteingabefeld, das die darin eingegebenen Zeichen zu Datenschutzzwecken verdeckt.A password box is a text input box that conceals the characters typed into it for the purpose of privacy. Ein Kennwortfeld sieht wie eine Textfeld aus. Die einzige Ausnahme besteht darin, dass anstelle des eingegebenen Texts Platzhalterzeichen angezeigt werden.A password box looks like a text box, except that it renders placeholder characters in place of the text that has been entered. Sie können das Platzhalterzeichen konfigurieren.You can configure the placeholder character.

Standardmäßig ermöglicht es das Kennwortfeld dem Benutzer, durch Gedrückthalten einer Schaltfläche zum Anzeigen des Kennworts sein Kennwort anzuzeigen.By default, the password box provides a way for the user to view their password by holding down a reveal button. Sie können die Schaltfläche zum Anzeigen des Kennworts deaktivieren oder einen alternativen Mechanismus zum Anzeigen des Kennworts, z. B. ein Kontrollkästchen, bereitstellen.You can disable the reveal button, or provide an alternate mechanism to reveal the password, such as a check box.

Abrufen der Windows-UI-BibliothekGet the Windows UI Library

WinUI-Logo

Die Bibliothek „Windows UI“ enthält ab Version 2.2 eine neue Vorlage für dieses Steuerelement, die abgerundete Ecken verwendet.Windows UI Library 2.2 or later includes a new template for this control that uses rounded corners. Weitere Informationen finden Sie unter Eckradius.For more info, see Corner radius. WinUI ist ein NuGet-Paket, das neue Steuerelemente und Benutzeroberflächenfeatures für Windows-Apps enthält.WinUI is a NuGet package that contains new controls and UI features for Windows apps. Weitere Informationen, einschließlich Installationsanweisungen, finden Sie unter Windows UI Library (Windows-UI-Bibliothek).For more info, including installation instructions, see Windows UI Library.

Plattform-APIs: PasswordBox-Klasse, Kennworteigenschaft, PasswordChar-Eigenschaft, PasswordRevealMode-Eigenschaft, PasswordChanged-EreignisPlatform APIs: PasswordBox class, Password property, PasswordChar property, PasswordRevealMode property, PasswordChanged event

Ist dies das richtige Steuerelement?Is this the right control?

Verwenden Sie ein PasswordBox-Steuerelement, um Kennwörter oder andere private Daten wie Sozialversicherungsnummern zu erfassen.Use a PasswordBox control to collect a password or other private data, such as a Social Security number.

Weitere Informationen zur Auswahl des passenden Textsteuerelements finden Sie im Artikel Textsteuerelemente.For more info about choosing the right text control, see the Text controls article.

BeispieleExamples

XAML-SteuerelementekatalogXAML Controls Gallery
XAML controls gallery

Wenn Sie die App XAML-Steuerelementekatalog installiert haben, klicken Sie hier, um die App zu öffnen und PasswordBox in Aktion zu sehen.If you have the XAML Controls Gallery app installed, click here to open the app and see the PasswordBox in action.

Das Kennwortfeld verfügt über mehrere Zustände, wichtig sind insbesondere die folgenden.The password box has several states, including these notable ones.

Bei Inaktivität kann zu einem Kennwortfeld Hinweistext angezeigt werden, um dem Benutzer seinen Zweck mitzuteilen:A password box at rest can show hint text so that the user knows its purpose:

Kennwortfeld im Ruhezustand mit Hinweistext

Wenn der Benutzer Zeichen in ein Kennwortfeld eingibt, werden standardmäßig Aufzählungszeichen angezeigt, die den eingegebenen Text verbergen:When the user types in a password box, the default behavior is to show bullets that hide the text being entered:

Kennwortfeld im Fokuszustand bei Texteingabe

Durch Drücken der Schaltfläche zur Offenlegung des Kennworts auf der rechten Seite wird das eingegebene Kennwort angezeigt:Pressing the "reveal" button on the right gives a peek at the password text being entered:

Kennwortfeld mit angezeigtem Text

Erstellen eines KennwortfeldsCreate a password box

Verwenden Sie die Password-Eigenschaft, um den Inhalt des Kennwortfelds abzurufen oder festzulegen.Use the Password property to get or set the contents of the PasswordBox. Dies kann im Handler für das PasswordChanged-Ereignis erfolgen, um die Überprüfung durchzuführen, während der Benutzer das Kennwort eingibt.You can do this in the handler for the PasswordChanged event to perform validation while the user enters the password. Oder Sie können ein weiteres Ereignis, z. B. ein Click-Ereignis der Schaltfläche, verwenden, um die Überprüfung durchzuführen, nachdem der Benutzer die Texteingabe abgeschlossen hat.Or, you can use another event, like a button Click, to perform validation after the user completes the text entry.

Dieser XAML-Code für ein Kennwortfeld-Steuerelement zeigt das Standardaussehen des Kennwortfelds.Here's the XAML for a password box control that demonstrates the default look of the PasswordBox. Wenn der Benutzer ein Kennwort eingibt, wird überprüft, ob es dem Literalwert „Password“ entspricht.When the user enters a password, you check to see if it's the literal value, "Password". In diesem Fall wird dem Benutzer eine Meldung angezeigt.If it is, you display a message to the user.

<StackPanel>  
  <PasswordBox x:Name="passwordBox" Width="200" MaxLength="16"
             PasswordChanged="passwordBox_PasswordChanged"/>

  <TextBlock x:Name="statusText" Margin="10" HorizontalAlignment="Center" />
</StackPanel>   
private void passwordBox_PasswordChanged(object sender, RoutedEventArgs e)
{
    if (passwordBox.Password == "Password")
    {
        statusText.Text = "'Password' is not allowed as a password.";
    }
    else
    {
        statusText.Text = string.Empty;
    }
}

Dies ist das Ergebnis, wenn der Code ausgeführt und als Kennwort „Password“ eingegeben wird.Here's the result when this code runs and the user enters "Password".

Kennwortfeld mit Überprüfungshinweis

KennwortzeichenPassword character

Durch Festlegen der PasswordChar-Eigenschaft können Sie das zum Maskieren des Kennworts verwendete Zeichen ändern.You can change the character used to mask the password by setting the PasswordChar property. Hier wird das standardmäßige Aufzählungszeichen durch ein Sternchen ersetzt.Here, the default bullet is replaced with an asterisk.

<PasswordBox x:Name="passwordBox" Width="200" PasswordChar="*"/>

Das Ergebnis sieht wie folgt aus.The result looks like this.

Kennwortfeld mit einem benutzerdefinierten Maskierungszeichen

Kopf- und PlatzhaltertextHeaders and placeholder text

Mit den Eigenschaften Header und PlaceholderText können Sie den Kontext für das Kennwortfeld angeben.You can use the Header and PlaceholderText properties to provide context for the PasswordBox. Dies ist besonders hilfreich, wenn mehrere Felder vorhanden sind, z. B. in einem Formular zum Ändern des Kennworts.This is especially useful when you have multiple boxes, such as on a form to change a password.

<PasswordBox x:Name="passwordBox" Width="200" Header="Password" PlaceholderText="Enter your password"/>

Kennwortfeld im Ruhezustand mit Hinweistext

Maximale LängeMaximum length

Geben Sie die maximale Anzahl von Zeichen an, die der Benutzer eingeben darf, indem Sie die MaxLength-Eigenschaft festlegen.Specify the maximum number of characters that the user can enter by setting the MaxLength property. Es gibt keine Eigenschaft zum Festlegen einer Mindestlänge. Sie können jedoch im App-Code die Kennwortlänge überprüfen und weitere Überprüfungen durchführen.There is no property to specify a minimum length, but you can check the password length, and perform any other validation, in your app code.

KennwortanzeigemodusPassword reveal mode

Das Kennwortfeld verfügt über eine integrierte Schaltfläche, mit der Benutzer das eingegebene Kennwort anzeigen können.The PasswordBox has a built-in button that the user can press to display the password text. Hier ist das Ergebnis der Benutzeraktion.Here's the result of the user's action. Lässt der Benutzer die Schaltfläche los, wird das Kennwort automatisch wieder ausgeblendet.When the user releases it, the password is automatically hidden again.

Kennwortfeld mit angezeigtem Text

VorschaumodusPeek mode

Standardmäßig wird die Schaltfläche zum Anzeigen des Kennworts (oder die Vorschau-Schaltfläche) angezeigt.By default, the password reveal button (or "peek" button) is shown. Der Benutzer muss die Schaltfläche gedrückt halten, um das Kennwort anzuzeigen, sodass ein hohes Maß an Sicherheit gewährleistet ist.The user must continuously press the button to view the password, so that a high level of security is maintained.

Der Wert der PasswordRevealMode-Eigenschaft ist nicht der einzige Faktor, der bestimmt, ob eine Schaltfläche zum Anzeigen des Kennworts für den Benutzer sichtbar ist.The value of the PasswordRevealMode property is not the only factor that determines whether a password reveal button is visible to the user. Weitere Faktoren sind, ob das Steuerelement mit einer größeren Breite als der Mindestbreite angezeigt wird, ob das Kennwortfeld den Fokus hat und ob das Texteingabefeld mindestens ein Zeichen enthält.Other factors include whether the control is displayed above a minimum width, whether the PasswordBox has focus, and whether the text entry field contains at least one character. Die Schaltfläche zum Anzeigen des Kennworts wird nur angezeigt, wenn das Kennwortfeld zum ersten Mal den Fokus erhält und ein Zeichen eingegeben wird.The password reveal button is shown only when the PasswordBox receives focus for the first time and a character is entered. Wenn PasswordBox den Fokus verliert und ihn anschließend wieder erhält, wird die Schaltfläche zum Anzeigen des Kennworts nicht angezeigt, es sei denn, das Kennwort wird gelöscht und die Zeichen werden erneut eingegeben.If the PasswordBox loses focus and then regains focus, the reveal button is not shown again unless the password is cleared and character entry starts over.

Achtung  Vor Windows 10 wurde die Schaltfläche zum Anzeigen des Kennworts nicht standardmäßig angezeigt.Caution  Prior to Windows 10, the password reveal button was not shown by default. Wenn die Sicherheit Ihrer App erfordert, dass das Kennwort immer verdeckt ist, muss „PasswordRevealMode“ auf „Hidden“ festgelegt werden.If the security of your app requires that the password is always obscured, be sure to set PasswordRevealMode to Hidden.

Ausblendungs- und AnzeigemodusHidden and Visible modes

Mit den weiteren PasswordRevealMode-Aufzählungswerten Hidden und Visible blenden Sie die Schaltfläche zum Anzeigen des Kennworts aus. Sie können programmgesteuert festlegen, ob das Kennwort verdeckt wird.The other PasswordRevealMode enumeration values, Hidden and Visible, hide the password reveal button and let you programmatically manage whether the password is obscured.

Um das Kennwort immer zu verdecken, legen Sie „PasswordRevealMode“ auf „Hide“ fest.To always obscure the password, set PasswordRevealMode to Hidden. Wenn das Kennwort nicht immer verdeckt sein muss, können Sie eine benutzerdefinierte Benutzeroberfläche bereitstellen, die dem Benutzer das Umschalten von „PasswordRevealMode“ zwischen „Hidden“ and „Visible“ ermöglicht.Unless you need the password to be always obscured, you can provide a custom UI to let the user toggle the PasswordRevealMode between Hidden and Visible. Sie können z. B. ein Kontrollkästchen verwenden, um umzuschalten, ob das Kennwort verdeckt wird, wie im folgenden Beispiel gezeigt wird.For example, you can use a check box to toggle whether the password is obscured, as shown in the following example. Sie können auch andere Steuerelemente wie ToggleButton verwenden, damit der Benutzer zwischen den Modi wechseln kann.You can also use other controls, like ToggleButton, to let the user switch modes.

In diesem Beispiel wird gezeigt, wie Sie mit einem CheckBox-Steuerelement dem Benutzer das Wechseln des Anzeigemodus eines Kennwortfelds ermöglichen.This example shows how to use a CheckBox to let a user switch the reveal mode of a PasswordBox.

<StackPanel Width="200">
    <PasswordBox Name="passwordBox1"
                 PasswordRevealMode="Hidden"/>
    <CheckBox Name="revealModeCheckBox" Content="Show password"
              IsChecked="False"
              Checked="CheckBox_Changed" Unchecked="CheckBox_Changed"/>
</StackPanel>
private void CheckBox_Changed(object sender, RoutedEventArgs e)
{
    if (revealModeCheckBox.IsChecked == true)
    {
        passwordBox1.PasswordRevealMode = PasswordRevealMode.Visible;
    }
    else
    {
        passwordBox1.PasswordRevealMode = PasswordRevealMode.Hidden;
    }
}

Dieses Kennwortfeld sieht in etwa so aus.This PasswordBox looks like this.

Kennwortfeld mit einer benutzerdefinierten Schaltfläche zum Anzeigen des Kennworts

Auswählen der richtigen Tastatur für Ihr TextsteuerelementChoose the right keyboard for your text control

Um Benutzern die Eingabe von Daten mit der Bildschirmtastatur oder dem Soft Input Panel (SIP) zu erleichtern, können Sie den Eingabeumfang des Textsteuerelements an die Art der Daten anpassen, die der Benutzer vermutlich eingeben wird.To help users to enter data using the touch keyboard, or Soft Input Panel (SIP), you can set the input scope of the text control to match the kind of data the user is expected to enter. Das Kennwortfeld unterstützt nur die Eingabeumfangwerte Password und NumericPin.PasswordBox supports only the Password and NumericPin input scope values. Andere Werte werden ignoriert.Any other value is ignored.

Weitere Informationen zur Verwendung von Eingabeumfängen finden Sie unter Verwenden des Eingabeumfangs zum Ändern der Bildschirmtastatur.For more info about how to use input scopes, see Use input scope to change the touch keyboard.

EmpfehlungenRecommendations

  • Verwenden Sie eine Beschriftung oder Platzhaltertext, wenn der Zweck des Kennwortfelds nicht eindeutig ist.Use a label or placeholder text if the purpose of the password box isn't clear. Eine Beschriftung ist sichtbar, unabhängig davon, ob das Texteingabefeld über einen Wert verfügt.A label is visible whether or not the text input box has a value. Platzhaltertext wird im Texteingabefeld angezeigt und wird erst ausgeblendet, wenn der Benutzer einen Wert eingibt.Placeholder text is displayed inside the text input box and disappears once a value has been entered.
  • Weisen Sie dem Kennwortfeld eine entsprechende Breite für den Bereich der Werte zu, die eingegeben werden können.Give the password box an appropriate width for the range of values that can be entered. Die Wortlänge variiert zwischen den einzelnen Sprachen. Sie sollten also die Lokalisierung berücksichtigen, wenn Ihre App global verwendet werden soll.Word length varies between languages, so take localization into account if you want your app to be world-ready.
  • Platzieren Sie kein anderes Steuerelement neben einem Eingabefeld für Kennwörter.Don't put another control right next to a password input box. Das Kennwortfeld weist eine Schaltfläche zum Anzeigen des Kennworts auf, damit Benutzer die eingegebenen Kennwörter überprüfen können. Wenn ein anderes Steuerelement direkt daneben vorhanden ist, zeigen Benutzer möglicherweise versehentlich ihre Kennwörter an, wenn sie versuchen, mit dem anderen Steuerelement zu interagieren.The password box has a password reveal button for users to verify the passwords they have typed, and having another control right next to it might make users accidentally reveal their passwords when they try to interact with the other control. Um dies zu verhindern, achten Sie auf einen gewissen Abstand zwischen dem Eingabefeld für Kennwörter und dem anderen Steuerelement. Sie können das andere Steuerelement auch in der nächsten Zeile platzieren.To prevent this from happening, put some spacing between the password in put box and the other control, or put the other control on the next line.
  • Ziehen Sie für die Kontenerstellung die Anzeige von zwei Kennwortfeldern in Erwägung: eins für das neue Kennwort und ein zweites zum Bestätigen des neuen Kennworts.Consider presenting two password boxes for account creation: one for the new password, and a second to confirm the new password.
  • Zeigen Sie für Benutzernamen nur ein einzelnes Kennwortfeld an.Only show a single password box for logins.
  • Wenn ein Kennwortfeld zur PIN-Eingabe verwendet wird, sollten Sie möglicherweise statt einer Bestätigungsschaltfläche eine sofortige Reaktion nach der Eingabe der letzten Zahl vorsehen.When a password box is used to enter a PIN, consider providing an instant response as soon as the last number is entered instead of using a confirmation button.

Beispielcode herunterladenGet the sample code

TextsteuerelementeText controls