Control.FocusState Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob dieses Steuerelement den Fokus hat, und den Modus, in dem der Fokus abgerufen wurde.
public:
property FocusState FocusState { FocusState get(); };
FocusState FocusState();
public FocusState FocusState { get; }
var focusState = control.focusState;
Public ReadOnly Property FocusState As FocusState
Eigenschaftswert
Ein Wert aus der Enumeration. Der Wert Unfocused gibt an, dass das Steuerelement keinen Fokus hat.
Hinweise
Diese Eigenschaft unterstützt Steuerelemente, die unterschiedliche visuelle Stile verwenden, je nachdem, ob das Steuerelement über die Tastatur oder auf andere Wege fokussiert wurde. Einige Steuerelemente verwenden visuelle Zustände, die einen sichtbaren Fokusindikator anzeigen, wenn das Steuerelement durch eine Tastaturaktion fokussiert wurde, aber nicht den Indikator anzeigen, wenn das Steuerelement durch eine Zeigeraktion fokussiert wurde. Die interne Logik eines solchen Steuerelements implementiert OnGotFocus und ruft dann den Wert von FocusState vom Absender ab. Wenn FocusState Tastatur ist, wird ein anderer benannter visueller Zustand geladen, der ein Fokusrechteck enthält, indem GoToState aufgerufen wird. In der Regel werden fokusbezogene visuelle Zustände in der Standardsteuerelementvorlage XAML gruppiert. Benutzerdefinierte Steuerelemente, die je nach Fokus unterschiedliche Fokusvisuals verwenden möchten, können dieselbe Logik selbst implementieren. Siehe OnGotFocus.
Eine andere Möglichkeit, diese Eigenschaft zu verwenden, besteht darin, FocusManager zu verwenden, um zu bestimmen, welches Element in der gesamtbenutzeroberfläche den Fokus hat, und dann FocusState für dieses Element aufzurufen, um Informationen darüber zu erhalten, wie dieses Steuerelement den Fokus erhalten hat.
Hinweise zu früheren Versionen
Hinweis
Wenn FocusState programmgesteuert ist, wird in Windows 8 das Tastaturfokusvisual auch dann angezeigt, wenn die vorherige Eingabemethode zeiger war. Wenn Sie in Windows 8.1 Focus (FocusState.Programmatic) aufrufen, wird der vorherige FocusState,entweder Zeiger oder Tastatur, beibehalten, sodass das richtige Fokusvisual angezeigt wird. Wenn Sie also den Wert der FocusState-Eigenschaft überprüfen, nachdem Sie Focus (FocusState.Programmatic) aufgerufen haben, weist die FocusState-Eigenschaft entweder den Wert Zeiger oder Tastatur auf.
In einer App, die für Windows 8 kompiliert, aber in Windows 8.1 ausgeführt wird, wird das Windows 8 Verhalten beibehalten. Der Wert der FocusState-Eigenschaft ist Programmatic , und das Visual für den Tastaturfokus wird angezeigt.
Hinweis
Klassen, die von ItemsControl erben, z. B . ListBox und AutoSuggestBox, geben die FocusState-Eigenschaft nicht weiter. Sie geben immer unfokussiert zurück. Greifen Sie über RoutedEventArgs.OriginalSource auf den richtigen Wert zu.