2016-12-13 4 views
0

Ich habe Ansichten, die sich überschneiden. Ich verwende eine Ansicht, um ein Popup anzuzeigen. Auf diesem Popup befinden sich 3 Textfelder und zwei Schaltflächen. In diesem UserControl habe ich den TabIndex richtig eingestellt. Diese Ansichten befinden sich in einem ListModule. Und diese werden in zwei separate UserControls des MainModules geladen.TabIndex springt zwischen den Ansichten

Aber jetzt, wenn ich durch dieses Popup-Fenster mit der Tab-Taste navigiere, springt der Fokus nach der zweiten Schaltfläche aus dem Popup und zurück zur Hauptansicht. Danach zu der anderen Ansicht, die dem Popup zugrunde liegt.

Also im Grunde konzentriert sich jedes Steuerelement, das mit der Tabulatortaste fokussierbar ist, beim Tab durch meine Anwendung.

Wie kann ich den Tabindex auf meine spezielle Popup-Ansicht beschränken? (Nicht sicher, ob ein Code hier und welche Teile notwendig ist. Wenn ja, würde ich einige zur Verfügung stellen.)

Antwort

0

Ich fand es heraus.

Basierend auf this answer spielte ich mit KeyboardNavigation.TabNavigation in der UserControl herum. Wenn Sie es auf KeyboardNavigation.TabNavigation="Cycle" einstellen, wird das Tab in meiner UserControl gespeichert. Und dann setzen Sie die TabIndex von jedem Steuerelement wie üblich.

Beispiel:

<UserControl x:Class="ListModule.Views.AddNewItemView" 
     ... 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" 
     d:DesignHeight="220" d:DesignWidth="320" 
     Background="#80FFB887" 
     KeyboardNavigation.TabNavigation="Cycle">