Language: HTML | XAML

Reaktion auf Tastaturinteraktionen (XAML)

Applies to Windows and Windows Phone

Reagieren Sie in Ihren Apps auf Tastaturaktionen auf einer Hardware- oder Bildschirmtastatur, indem Sie sowohl Tastatur- als auch Klassenereignishandler verwenden.

Wichtig  

Einige Windows-Runtime-Steuerelemente behandeln Eingabeereignisse intern. In diesen Fällen tritt ein Eingabeereignis möglicherweise nicht ein, weil der Ereignislistener den zugehörigen Handler nicht aufruft. Normalerweise wird diese Tastenteilmenge vom Klassenhandler verarbeitet, um eine integrierte Unterstützung für die Barrierefreiheit des einfachen Tastaturzugriffs bereitzustellen. Die Button-Klasse setzt beispielsweise die OnKeyDown-Ereignisse für die Leertaste und die EINGABETASTE (sowie für OnPointerPressed) außer Kraft und leitet sie an das Click-Ereignis des Steuerelements weiter. Wenn von der Steuerelementklasse ein Tastendruck verarbeitet wird, werden die KeyDown- und KeyUp-Ereignisse nicht ausgelöst.

Dadurch wird ein integriertes Tastaturäquivalent zum Aufrufen der Schaltfläche bereitgestellt, das dem Tippen mit dem Finger oder Klicken mit einer Maus ähnelt. Andere Tasten als die Leertaste oder EINGABETASTE lösen die KeyDown- und KeyUp-Ereignisse trotzdem aus. Weitere Informationen zur Funktionsweise der klassenbasierten Behandlung von Ereignissen finden Sie unter Übersicht über Ereignisse und Routingereignisse (insbesondere unter Eingabeereignishandler in Steuerelementen).

Tipp  Dieses Thema enthält spezifische Informationen zum Entwickeln von Apps mit C++, C# oder Visual Basic.

Informationen zu Apps mit JavaScript finden Sie unter Reaktion auf Tastaturinteraktionen (HTML).

Voraussetzungen:  lesen Sie die Informationen in diesen Themen, um sich mit den hier erläuterten Technologien vertraut zu machen.

Erstellen Ihrer ersten Windows Store-App mit C# oder Visual Basic

Erstellen Ihrer ersten Windows Store-App mit C++

Roadmap für Windows Store-Apps mit C# oder Visual Basic

Roadmap für Windows Store-Apps mit C++

Informationen zu Ereignissen finden Sie unter Übersicht über Ereignisse und Routingereignisse

App-Features von A bis Z:  In unserer Reihe App-Features von A bis Z können Sie sich genauer über diese Funktion informieren.

Benutzerinteraktion von A bis Z (XAML)

Anpassung der Benutzerinteraktion von A bis Z (XAML)

Richtlinien für die Benutzeroberfläche:  

Die Plattform-Steuerelementbibliotheken (HTML und XAML) bieten umfassende Funktionalität für Benutzerinteraktionen, u. a. für Standardinteraktionen, animierte Physikeffekte und visuelles Feedback. Wenn Sie keine Unterstützung für angepasste Interaktionen benötigen, sollten Sie diese integrierten Steuerelemente verwenden.

Falls die Funktionalität der Plattformsteuerelemente nicht ausreicht, können Ihnen die folgenden Richtlinien für Benutzerinteraktionen dabei helfen, eine ansprechende, immersive und für alle Eingabemodi einheitliche Interaktionsumgebung bereitzustellen. Diese Richtlinien betreffen in erster Linie Fingereingaben, sie sind jedoch auch für Touchpad-, Maus-, Tastatur- und Stifteingaben relevant.

Beispiele:  Sehen Sie sich unter Beispiele für Apps diese Funktionalität in Aktion an.

Eingabebeispiel

Eingabe: Beispiel für Gerätefunktionen

Eingabe: Beispiel für die Bildschirmtastatur

Beispiel für die Reaktion auf die Anzeige der Bildschirmtastatur

Übersicht

Die Tastatureingabe ist ein wichtiger Teil des Gesamteindrucks, den Benutzer bei der Interaktion mit Apps haben. Die Tastatur ist unentbehrlich für Personen mit bestimmten körperlichen Beeinträchtigungen oder für Benutzer, die die Tastatur als effizienteste Methode ansehen, um mit einer App zu interagieren. Benutzer sollten beispielsweise in der Lage sein, mit der Tabulatortaste und den Pfeiltasten in der App zu navigieren, mit der Leertaste und der EINGABETASTE UI-Elemente zu aktivieren und mit Tastenkombinationen auf Befehle zuzugreifen.

Eine gut durchdachte Tastatur-Benutzeroberfläche ist ein wichtiger Aspekt für die Barrierefreiheit von Software. Sie ermöglicht es Benutzern mit einer Sehbeeinträchtigung oder mit bestimmten motorischen Einschränkungen, in einer App zu navigieren und mit deren Features zu interagieren. Diese Benutzer können u. U. keine Maus bedienen und sind auf verschiedene Hilfstechnologien wie etwa Tastaturerweiterungstools, Bildschirmtastaturen, Bildschirmlupen, Bildschirmleseprogramme oder die Möglichkeit der Spracheingabe angewiesen.

Die am weitesten verbreitete Tastaturart ist die externe Hardwaretastatur, die physisch an ein Gerät angeschlossen wird. Neben der Hardwaretastatur bietet Windows 8 zwei Softwaretastaturen:

    • Applies to Windows

    Fenster:

    Bei der Bildschirmtastatur handelt es sich um eine visuelle Softwaretastatur, die Sie anstelle der physischen Tastatur zum Eingeben von Daten per Touch, Maus, Zeichen-/Eingabestift oder mit einem anderen Zeigegerät verwenden können. Ein Touchscreen ist nicht erforderlich. Die Bildschirmtastatur ist für Systeme ohne physische Tastatur oder für Benutzer vorgesehen, deren Mobilitätseinschränkungen die Verwendung herkömmlicher physischer Eingabegeräte verhindern. Die Bildschirmtastatur emuliert nahezu alle Funktionen der Hardwaretastatur.

    Die Bildschirmtastatur

    • Applies to Windows

    Fenster:

    Bei der Touchtastatur handelt es sich um eine visuelle Softwaretastatur für die Texteingabe per Touch. Die Touchtastatur ist kein Ersatz für die Bildschirmtastatur. Sie wird nur für die Texteingabe verwendet (die Hardwaretastatur wird nicht emuliert) und wird nur angezeigt, wenn der Fokus auf einem Textfeld oder einem anderen bearbeitbaren Textsteuerelement liegt.

    Hinweis  Die Bildschirmtastatur hat gegenüber dem SIP Priorität. Das SIP erscheint nicht, wenn die Bildschirmtastatur angezeigt wird.

    Hier finden Sie Beispiele für die Touchtastatur. Das erste Bild zeigt das Standardlayout, das zweite das Daumenlayout (letzteres ist unter Umständen nicht in allen Sprachen verfügbar).

    Touchtastatur im Standardlayout

    Touchtastatur im Daumenlayout

Tastaturereignisse

Die folgenden Tastaturereignisse können sowohl für Hardware- als auch für Bildschirmtastaturen eintreten.

EreignisBeschreibung
KeyDown Tritt auf, wenn eine Taste gedrückt wird.
KeyUp Tritt auf, wenn eine Taste losgelassen wird.

 

Tastaturereignisse und Fokus

Die Steuerelemente der UI generieren nur dann Tastaturereignisse, wenn sie den Eingabefokus haben. Ein einzelnes Steuerelement erhält den Fokus, wenn Benutzer im Layout auf das Steuerelement klicken oder tippen oder mit der TAB-TASTE im Inhaltsbereich eine Aktivierreihenfolge durchlaufen.

Sie können auch die Focus-Methode eines Steuerelements aufrufen, um den Fokus zu erzwingen. Dies ist notwendig, wenn Sie Tastenkombinationen implementieren, da der Tastaturfokus beim Laden der UI nicht standardmäßig festgelegt wird. Weitere Informationen finden Sie weiter unten in diesem Thema unter Beispiel für Tastenkombinationen.

Damit ein Steuerelement den Eingabefokus erhält, muss es aktiviert und sichtbar sein. Außerdem müssen die Eigenschaften IsTabStop und HitTestVisible den Wert true haben. Dies ist der Standardzustand der meisten Steuerelemente. Wenn ein Steuerelement den Eingabefokus hat, kann es Tastatureingabeereignisse auslösen und auf diese reagieren. Dies wird weiter unten in diesem Thema beschrieben. Mit den Ereignissen GotFocus und LostFocus können Sie außerdem reagieren, wenn ein Steuerelement den Fokus erhält oder verliert.

Standardmäßig entspricht die Aktivierreihenfolge von Steuerelementen der Reihenfolge, in der sie im XAML angezeigt werden. Mit der TabIndex-Eigenschaft können Sie diese Reihenfolge jedoch ändern. Weitere Informationen finden Sie unter Implementieren von Barrierefreiheit für den Tastaturzugriff.

Tastaturereignishandler

Ein Eingabeereignishandler implementiert einen Delegaten, der die folgenden Informationen bereitstellt:

  • Den Sender des Ereignisses. Der Sender meldet das Objekt, dem der Ereignishandler angefügt ist.
  • Ereignisdaten. Bei Tastaturereignissen sind diese Daten eine Instanz von KeyRoutedEventArgs. KeyEventHandler ist der Delegat für Handler. Key und möglicherweise KeyStatus sind in den meisten Handlerszenarien die wichtigsten Eigenschaften von KeyRoutedEventArgs.
  • OriginalSource. Da es sich bei Tastaturereignissen um Routingereignisse handelt, stellen die Ereignisdaten OriginalSource bereit. Wenn Sie bewusst das Bubbling von Ereignissen in der Objektstruktur zulassen, ist OriginalSource manchmal eher das fragliche Objekt als der Sender. Das hängt jedoch vom Design ab. Weitere Informationen dazu, wie Sie OriginalSource anstelle des Senders verwenden können, finden Sie im Abschnitt "Routingereignisse der Tastatur" in diesem Thema oder unter Übersicht über Ereignisse und Routingereignisse.

Anfügen eines Tastaturereignishandlers

Sie können Funktionen von Tastaturereignishandlern für jedes Objekt anfügen, das das Ereignis als Member einschließt. Dazu gehört jede von UIElement abgeleitete Klasse. Das folgende XAML-Beispiel zeigt, wie Sie für eine Grid Handler für das KeyUp-Ereignis anfügen.



<Grid KeyUp="Grid_KeyUp">
  ...
</Grid>


Sie können einen Ereignishandler auch manuell im Code anfügen. Weitere Informationen finden Sie unter Übersicht über Ereignisse und Routingereignisse.

Definieren eines Tastaturereignishandlers

Das folgende Beispiel zeigt eine unvollständige Ereignishandlerdefinition für den im vorherigen Beispiel hinzugefügten KeyUp-Ereignishandler.



void Grid_KeyUp(object sender, KeyRoutedEventArgs e)
{
    //handling code here
}


Verwenden von "KeyRoutedEventArgs"

Alle Tastaturereignisse verwenden KeyRoutedEventArgs für Ereignisdaten. KeyRoutedEventArgs enthält die folgenden Eigenschaften:

Key

Das KeyDown-Ereignis wird ausgelöst, wenn eine Taste gedrückt wird. Entsprechend wird das KeyUp-Ereignis ausgelöst, wenn eine Taste losgelassen wird. In der Regel lauschen Sie auf Ereignisse, um einen bestimmten Tastenwert zu verarbeiten. Überprüfen Sie den Key-Wert in den Ereignisdaten, um die gedrückte oder losgelassene Taste zu ermitteln. Key gibt einen VirtualKey-Wert zurück. Die VirtualKey-Enumeration umfasst alle unterstützten Tasten.

Zusatztasten

  • Applies to Windows

Fenster:

Zusatztasten sind Tasten wie beispielsweise STRG oder UMSCHALT, die Benutzer normalerweise in Kombination mit anderen Tasten drücken. Ihre App kann diese Kombinationen als Tastenkombinationen zum Aufrufen von App-Befehlen nutzen.

Sie erkennen Tastenkombinationen mithilfe des Codes in den KeyDown- und KeyUp-Ereignishandlern. Sie können dann den Zustand "Gedrückt" der Zusatztasten überwachen, die für Sie von Interesse sind. Wenn für eine Nichtzusatztaste ein Tastaturereignis auftritt, können Sie überprüfen, ob gleichzeitig eine Zusatztaste gedrückt wurde.

Hinweis  Die Alt-Taste wird durch den VirtualKey.Menu-Wert dargestellt.

Beispiel für Tastenkombinationen

  • Applies to Windows

Fenster:

Im folgenden Beispiel wird die Implementierung von Tastenkombinationen gezeigt. In diesem Beispiel können Benutzer die Medienwiedergabe mit den Schaltflächen "Play", "Pause" und "Stop" oder mit den Tastenkombinationen STRG+P, STRG+A und STRG+S steuern. Das Schaltflächen-XAML zeigt die Tastenkombinationen in Form von QuickInfos, AutomationProperties-Eigenschaften in den Schaltflächenbeschriftungen. Diese Selbstdokumentation ist wichtig, um die Benutzerfreundlichkeit und Barrierefreiheit der App zu erhöhen. Weitere Informationen finden Sie unter Implementieren von Barrierefreiheit für den Tastaturzugriff.

Beachten Sie auch, dass die Seite den Eingabefokus auf sich selbst festlegt, wenn sie geladen wird. Ohne diesen Schritt hat kein Steuerelement anfangs den Eingabefokus, und die App löst erst Eingabeereignisse aus, wenn Benutzer den Eingabefokus manuell festlegen (beispielsweise durch Drücken der TAB-TASTE oder Klicken auf ein Steuerelement).


<Grid KeyDown="Grid_KeyDown">

  <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>

  <MediaElement x:Name="DemoMovie" Source="xbox.wmv" 
    Width="500" Height="500" Margin="20" HorizontalAlignment="Center" />

  <StackPanel Grid.Row="1" Margin="10"
    Orientation="Horizontal" HorizontalAlignment="Center">

    <Button x:Name="PlayButton" Click="MediaButton_Click"
      ToolTipService.ToolTip="Shortcut key: Ctrl+P"
      AutomationProperties.AcceleratorKey="Control P">
      <TextBlock>Play</TextBlock>
    </Button>

    <Button x:Name="PauseButton" Click="MediaButton_Click"
      ToolTipService.ToolTip="Shortcut key: Ctrl+A" 
      AutomationProperties.AcceleratorKey="Control A">
      <TextBlock>Pause</TextBlock>
    </Button>

    <Button x:Name="StopButton" Click="MediaButton_Click"
      ToolTipService.ToolTip="Shortcut key: Ctrl+S" 
      AutomationProperties.AcceleratorKey="Control S">
      <TextBlock>Stop</TextBlock>
    </Button>

  </StackPanel>

</Grid>



protected override void OnNavigatedTo(NavigationEventArgs e)
{
    // Set the input focus to ensure that keyboard events are raised.
    this.Loaded += delegate { this.Focus(FocusState.Programmatic); };
}

private void Grid_KeyUp(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == VirtualKey.Control) isCtrlKeyPressed = false;
}

private void Grid_KeyDown(object sender, KeyRoutedEventArgs e)
{
    if (e.Key == VirtualKey.Control) isCtrlKeyPressed = true;
    else if (isCtrlKeyPressed)
    {
        switch (e.Key)
        {
            case VirtualKey.P: DemoMovie.Play(); break;
            case VirtualKey.A: DemoMovie.Pause(); break;
            case VirtualKey.S: DemoMovie.Stop(); break;
        }
    }
}

private void MediaButton_Click(object sender, RoutedEventArgs e)
{
    switch ((sender as Button).Name)
    {
        case "PlayButton": DemoMovie.Play(); break;
        case "PauseButton": DemoMovie.Pause(); break;
        case "StopButton": DemoMovie.Stop(); break;
    }
}


Hinweis  Durch das Festlegen der AutomationProperties.AcceleratorKey- oder AutomationProperties.AccessKey-Eigenschaft in XAML werden Zeichenfolgeninformationen zum Dokumentieren der Tastenkombination zum Auslösen der jeweiligen Aktion bereitgestellt. Die Informationen werden von Microsoft-UI-Automatisierungsclients wie der Sprachausgabe erfasst und normalerweise direkt für den Benutzer bereitgestellt. Mit dem Festlegen der AutomationProperties.AcceleratorKey- oder AutomationProperties.AccessKey-Eigenschaft ist keine eigene Aktion verknüpft. Sie müssen weiterhin Handler für KeyDown- oder KeyUp-Ereignisse anhängen, um das Verhalten der Tastenkombination tatsächlich in die App zu implementieren. Außerdem wird der Unterstrichzusatz für eine Zugriffstaste nicht automatisch bereitgestellt. Sie müssen den Text für die jeweilige Taste in Ihrem mnemonischen Zeichen explizit als Underline-Inlineformatierung unterstreichen, wenn auf der Benutzeroberfläche unterstrichener Text angezeigt werden soll.

Routingereignisse der Tastatur

Bestimmte Ereignisse gelten als Routingereignisse, wie z. B. KeyDown und KeyUp. Routingereignisse verwenden die Bubbling-Routingstrategie. Bei der Bubbling-Routingstrategie geht ein Ereignis von einem untergeordneten Objekt aus und wird jeweils an die übergeordneten Objekte in der Struktur weitergeleitet. Dadurch ergibt sich eine weitere Möglichkeit, das gleiche Ereignis zu behandeln und mit den gleichen Ereignisdaten zu interagieren..

Im folgenden XAML-Beispiel werden KeyUp-Ereignisse für ein Canvas- und zwei Button-Objekte definiert. Wenn Sie in diesem Fall eine Taste loslassen, während der Fokus auf einem der Button-Objekte liegt, wird das KeyUp-Ereignis ausgelöst. Das Ereignis wird per Bubbling an die übergeordnete Canvas weitergeleitet.


<StackPanel KeyUp="StackPanel_KeyUp">
  <Button Name="ButtonA" Content="Button A"/>
  <Button Name="ButtonB" Content="Button B"/>
  <TextBlock Name="statusTextBlock"/>
</StackPanel>


Das folgende Beispiel zeigt, wie der KeyUp-Ereignishandler für den entsprechenden XAML-Inhalt im vorherigen Beispiel implementiert wird.


void StackPanel_KeyUp(object sender, KeyRoutedEventArgs e)
{
    statusTextBlock.Text = String.Format(
        "The key {0} was pressed while focus was on {1}",
        e.Key.ToString(), (e.OriginalSource as FrameworkElement).Name);
}


Beachten Sie die Verwendung der OriginalSource-Eigenschaft im vorherigen Handler. Hier meldet OriginalSource das Objekt, das das Ereignis ausgelöst hat. Bei dem Objekt kann es sich nicht um StackPanel handeln, da StackPanel kein Steuerelement ist und den Fokus nicht besitzen kann. Nur eine der beiden Schaltflächen in StackPanel kann das Ereignis ausgelöst haben. Die Frage ist, welche? Mit OriginalSource können Sie das tatsächliche Quellobjekt des Ereignisses unterscheiden, wenn Sie das Ereignis für ein übergeordnetes Objekt behandeln.

Die Handled-Eigenschaft in Ereignisdaten

Je nach Ihrer Strategie für die Ereignisbehandlung empfiehlt sich vielleicht nur ein Ereignishandler, der auf ein Bubblingereignis reagiert. Wenn beispielsweise ein bestimmter KeyUp-Handler an eines der Button-Steuerelemente angefügt ist, hat dieses zuerst Gelegenheit, das Ereignis zu behandeln. In diesem Fall ist es nicht sinnvoll, dass auch das übergeordnete Panel das Ereignis behandelt. Verwenden Sie in diesem Szenario die Handled-Eigenschaft in den Ereignisdaten.

Der Zweck derHandled-Eigenschaft in der Datenklasse eines Routingereignisses besteht darin, zu melden, dass ein anderer Handler, den Sie an früherer Stelle in der Ereignisroute registriert haben, bereits tätig war. Dies beeinflusst das Verhalten des Routingereignissystems. Wenn Sie Handled in einem Ereignishandler auf true festlegen, ist das Routing eines Ereignisses beendet, und das Ereignis wird nicht mehr an nachfolgende übergeordnete Elemente gesendet.

"AddHandler " und bereits behandelte Tastaturereignisse

Sie können einen spezielle Technik verwenden, um Handler anzufügen, die auf bereits als behandelt markierte Ereignisse reagieren können. Bei dieser Technik wird mit der AddHandler-Methode ein Handler registriert, und es werden keine XAML-Attribute und keine sprachspezifische Syntax verwendet, die Handler wie "+=" in C# hinzufügen. Ein Nachteil dieser Technik ist im Allgemeinen, dass die AddHandler-API einen Parameter vom Typ RoutedEvent verwendet, der das fragliche Routingereignis identifiziert. Nicht alle Routingereignisse bieten einen RoutedEvent-Bezeichner. Dieser Umstand wirkt sich somit darauf aus, welche Routingereignisse im Handled-Fall noch behandelt werden können. Die Ereignisse KeyDown und KeyUp haben Routingereignisbezeichner (KeyDownEvent und KeyUpEvent) in UIElement. Andere Texteingabeereignisse, wie TextBox.TextChanged, besitzen jedoch keine Routingereignisbezeichner und können deshalb für die AddHandler-Technik nicht verwendet werden.

Steuerung

Eine geringe Anzahl von UI-Elementen verfügt über integrierte Unterstützung für die Steuerung. Die Steuerung verwendet eingabebezogene Routingereignisse in der zugrundeliegenden Implementierung. Sie ermöglicht die Verarbeitung verwandter UI-Eingaben (eine bestimmte Zeigeraktion oder Zugriffstaste) durch das Aufrufen eines einzelnen Befehlshandlers.

Wenn die Steuerung für ein UI-Element verfügbar ist, sollten Sie dessen Steuerungs-APIs verwenden anstelle einzelner Eingabeereignisse. Weitere Informationen finden Sie unter ButtonBase.Command.

Sie können auch ICommand implementieren, um die Befehlsfunktionalität zu kapseln, die Sie über normale Ereignishandler aufrufen. Auf diese Weise können Sie die Steuerung auch verwenden, wenn keine Command-Eigenschaft verfügbar ist.

Texteingabe und Steuerelemente

Bestimmte Steuerelemente reagieren mit einer eigenen Behandlung auf Tastaturereignisse. So ist beispielsweise das TextBox-Steuerelement dazu gedacht, über die Tastatur eingegebenen Text zu erfassen und visuell darzustellen. Es verwendet in seiner eigenen Logik KeyUp und KeyDown zum Erfassen von Tastaturanschlägen und löst dann auch sein eigenes TextChanged-Ereignis aus, wenn der Text tatsächlich geändert wurde.

Trotzdem können Sie generell einem TextBox oder einem verwandten Steuerelement, das der Verarbeitung von Texteingaben dient, Handler für KeyUp und KeyDown hinzufügen. Jedoch reagiert ein Steuerelement möglicherweise im Rahmen seines Design nicht auf alle Tastenwerte, die es über Tastaturereignisse empfängt. Das Verhalten hängt ganz vom jeweiligen Steuerelement ab.

Beispielsweise verarbeitet ButtonBase (die Basisklasse von Button) KeyUp so, dass eine Überprüfung für die Leertaste oder für die Eingabetaste durchgeführt werden kann. ButtonBase behandelt KeyUp analog zu einem Ereignis für das Drücken der linken Maustaste, um ein Click-Ereignis auszulösen. Diese Verarbeitung des Ereignisses wird beim Überschreiben der virtuellen OnKeyUp-Methode durch ButtonBase erreicht. In der Implementierung wird Handled auf true festgelegt. Als Ergebnis empfängt kein übergeordnetes Element einer Schaltfläche, die bei der LEERTASTE auf ein Tastaturereignis lauscht, das bereits behandelte Element für seine eigenen Handler.

TextBox ist ein weiteres Beispiel. Einige Tasten, wie die Pfeiltasten, werden von TextBox nicht als Text angesehen und gelten stattdessen als spezifisch für das UI-Steuerelementverhalten TextBox markiert diese Ereignisse als behandelt.

Benutzerdefinierte Steuerelemente können ein ähnliches eigenes Überschreibungsverhalten für Tastaturereignisse implementieren und OnKeyDown/OnKeyUp überschreiben. Wenn Ihr benutzerdefiniertes Steuerelement bestimmte Zugriffstasten verarbeitet oder ein Steuerelement- oder Fokusverhalten besitzt, das mit dem für TextBox geschilderten Szenario vergleichbar ist, sollten Sie diese Logik in Ihre eigenen OnKeyDown-/OnKeyUp-Überschreibungen aufnehmen.

Die Bildschirmtastatur

Steuerelemente für die Texteingabe bieten automatische Unterstützung für die Bildschirmtastatur. Wenn Benutzer den Eingabefokus per Fingereingabe auf ein Textsteuerelement festlegen, wird automatisch die Bildschirmtastatur angezeigt. Wenn sich der Eingabefokus nicht auf einem Textsteuerelement befindet, ist die Bildschirmtastatur ausgeblendet.

Wenn die Bildschirmtastatur angezeigt wird, wird Ihre UI automatisch umpositioniert, um sicherzustellen, dass das Element mit dem Fokus sichtbar bleibt. Dies kann dazu führen, dass andere wichtige Bereiche der UI nicht mehr auf dem Bildschirm angezeigt werden. Sie können das Standardverhalten jedoch deaktivieren und eigene UI-Anpassungen vornehmen, wenn die Bildschirmtastatur eingeblendet wird. Weitere Informationen finden Sie im Beispiel zur Reaktion auf die Anzeige der Bildschirmtastatur.

Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, das zwar Texteingabe erfordert, aber nicht von einem Standardsteuerelement für die Texteingabe abgeleitet ist, können Sie Unterstützung für die Bildschirmtastatur hinzufügen, indem Sie die richtigen Steuerelementmuster für die Benutzeroberflächenautomatisierung implementieren. Weitere Informationen finden Sie im Beispiel für die Bildschirmtastatur.

Durch Drücken von Tasten auf der Bildschirmtastatur werden genau wie beim Drücken von Tasten auf Hardwaretastaturen die Ereignisse KeyDown und KeyUp ausgelöst. Die Bildschirmtastatur löst jedoch keine Eingabeereignisse für STRG+A, STRG+Z, STRG+X, STRG+C und STRG+V aus, da diese Tastenkombinationen für Textänderungen im Eingabesteuerelement reserviert sind.

Richtlinien für die Benutzeroberfläche zur Unterstützung von Tastaturinteraktionen

Hier finden Sie einige Richtlinien für die Unterstützung von Tastaturinteraktionen.

Allgemein

    • Applies to Windows

    Fenster:

    Die Benutzer müssen in der Lage sein, alle von der App unterstützten Funktionen nur mithilfe der Hardware-Tastatur oder der Bildschirmtastatur auszuführen.

    Hinweis  Die Bildschirmtastatur wird nur für Texteingabe und nicht für App- oder Systembefehle verwendet.

  • Legen Sie den Fokus Ihrer Tastatur beim Starten der App auf das Element fest, mit dem Benutzer intuitiv (oder mit der größten Wahrscheinlichkeit) als erstes interagieren. In aller Regel handelt es sich dabei um die Hauptansicht der App. Benutzer können so mithilfe der Pfeiltasten unmittelbar einen Bildlauf durch den Inhalt der App durchführen. Weitere Informationen zum Festlegen des Fokus auf spezifische Steuerelemente finden Sie unter Focus.
    • Applies to Windows

    Fenster:

    Die Navigation durch die Inhalte mithilfe der TAB-Taste und der Pfeiltasten muss in einer logischen Reihenfolge erfolgen.
  • Legen Sie die TabIndex-Eigenschaft auf einen Wert fest, der für alle interaktiven Benutzeroberflächenelemente, die sich nicht standardmäßig in der Aktivierreihenfolge befinden, größer oder gleich 0 ist. Es ist wichtig, die TabIndex-Eigenschaft festzulegen, da Benutzer der Sprachausgabe zwischen interaktiven Benutzeroberflächenelementen mithilfe der Tabulatortaste navigieren.
    • Applies to Windows

    Fenster:

    Verwenden Sie die Pfeiltasten als Tastenkombinationen für die ordnungsgemäße interne Navigation zwischen untergeordneten Elementen zusammengesetzter Elemente. Wenn Knoten der Strukturansicht separate untergeordnete Elemente für die Verarbeitung der Erweitern/Reduzieren- und Knoten-Aktivierung aufweisen, sollten Sie die Nach-links- und die Nach-rechts-Taste verwenden, um die Erweitern/Reduzieren-Funktion über die Tastatur bereitzustellen.
  • Stellen Sie sicher, dass alle Benutzeroberflächenelemente, auf die geklickt werden kann, auch über die Tastatur aufgerufen werden können.
    • Applies to Windows

    Fenster:

    Implementieren Sie Tastenkombinationen für wichtige Funktionen der App. (Durch Tastenkombinationen wird die Produktivität verbessert, da sie dem Benutzer eine effiziente Möglichkeit für den Zugriff auf die Funktionen der App bieten.)

    Zugriffstasten ermöglichen den schnellen Zugriff auf Benutzeroberflächenelemente in Ihrer App. Eine Zugriffstaste ist eine Kombination aus der ALT-TASTE und einer Buchstabentaste.

    Tastenkombinationen ermöglichen die schnelle Nutzung von App-Befehlen. Ihr App kann Benutzeroberflächenelemente aufweisen, die exakt dem Befehl entsprechen. Tastenkombinationen sind eine Kombination aus der Strg-Taste und einer Buchstabentaste.

    Benutzern, die auf Sprachausgabe und andere Hilfstechnologien angewiesen sind, muss eine einfache Möglichkeit geboten werden, die Tastenkombinationen der App zu erkennen. Deklarieren Sie die Tastenkombinationen im HTML-Markup Ihrer App mithilfe der AccessKey-Eigenschaft, und übermitteln Sie Tastenkombinationen mithilfe von QuickInfos, barrierefreien Namen und barrierefreien Beschreibungen oder einer anderen Form der Bildschirmkommunikation. Tastenkombinationen sollten im Hilfeinhalt Ihrer App ausführlich dokumentiert sein.

    Weitere Unterstützung bei der Implementierung von Tastenkombinationen erhalten Sie unter Tastenkombinationen in den Richtlinien zur benutzerfreundlichen Interaktion bei Windows.

    Definieren Sie die Standardtastenkombinationen nicht um, die Benutzer in allen Windows Store-Apps erwarten. Eine umfassende Liste finden Sie unter Tastenkombinationen.

Hardware

Überprüfen Sie die Funktionen des Tastaturgeräts (KeyboardCapabilities), um festzustellen, ob eine Tastatur angeschlossen ist und auf welche Elemente der Benutzeroberfläche Ihrer App die Tastaturhardware direkt zugreifen kann. Weitere Informationen zum Überprüfen von Gerätefunktionen finden Sie unter Schnellstart: Erkennen von Zeigergeräten.

Weisen Sie Tastaturschaltflächen in der Benutzeroberfläche Ihrer App entsprechende Funktionen zu (Zurück- und Vorwärts-Schaltflächen).

Visuelles Feedback

  • Verwenden Sie Fokusrechtecke nur bei Tastaturinteraktionen. Wenn der Benutzer eine Touchinteraktion auslöst, blenden Sie die für Tastaturinteraktionen spezifische Benutzeroberfläche schrittweise aus. Somit bleibt die Benutzeroberfläche sauber und aufgeräumt.
  • Lassen Sie kein visuelles Feedback anzeigen, wenn ein Element keine Interaktionen unterstützt (z. B. statischer Text).
  • Lassen Sie für alle Elemente, die das gleiche Eingabeziel darstellen, visuelles Feedback anzeigen.
  • Stellen Sie Schaltflächen (z. B. "+" und "-") zur Verfügung, um Hinweise für touchbasierte Manipulationen wie etwa Verschieben, Drehen, Zoomen usw. zu emulieren.

Allgemeine Informationen zum visuellen Feedback finden Sie unter Richtlinien für visuelles Feedback.

Verwandte Themen

Konzept
Reaktion auf Benutzerinteraktionen
Schnellstart: Hinzufügen von HTML-Steuerelementen und Behandeln von Ereignissen
Implementieren von Barrierefreiheit für den Tastaturzugriff
Barrierefreiheit in Windows Store-Apps mit C++, C# oder Visual Basic
Anzeigen und Bearbeiten von Text
Manager zum Hosten von Eingaben und die Bildschirmtastatur

 

 

Anzeigen:
© 2014 Microsoft