UIElement.Focus Metoda

Definicja

Próbuje ustawić fokus na ten element.

C#
public bool Focus();

Zwraca

true jeśli fokus klawiatury i fokus logiczny zostały ustawione na ten element; false jeśli tylko fokus logiczny został ustawiony na ten element lub jeśli wywołanie tej metody nie wymusiło zmiany fokusu.

Implementuje

Przykłady

W poniższym przykładzie ustawia fokus na TextBox przywołyny przez Nameelement , a następnie dostosowuje położenie kursora TextBoxw obiekcie .

C#
void OnClickMoveToStart(object sender, RoutedEventArgs e)
{
    tbPositionCursor.Focus();
    tbPositionCursor.Select(0, 0);
}

Uwagi

Aby można było się skupić, Focusable i IsEnabled musi to być truezarówno .

Nawet jeśli element jest fokusowy i prawidłowy, Focus zdarzenia podglądu mogą być przetwarzane w określonym drzewie, a fokus na tym elemecie może być niedozwolony (na przykład w kontrolce złożonej). W takim przypadku ta metoda zwraca wartość false.

Ogólnie rzecz biorąc, fokus jest kontrolowany przez dwie różne koncepcje: fokus klawiatury i fokus logiczny. Te dwie koncepcje nie zawsze są takie same. Aby uzyskać więcej informacji, zobacz Podsumowanie fokusu i Omówienie danych wejściowych.

Jeśli wywołanie Focus zwraca truewartość , IsKeyboardFocused i IsKeyboardFocusWithin są również true.

Jeśli powiązane właściwości nie są jeszcze true, podczas wywoływania Focusmetody jest wywoływane co najmniej jedno z następujących zdarzeń w następującej kolejności: PreviewLostKeyboardFocus, PreviewGotKeyboardFocus (źródło jest nowym obiektem docelowym fokusu), IsKeyboardFocusedChanged, IsKeyboardFocusWithinChanged, LostKeyboardFocus( GotKeyboardFocus źródłem jest nowy element docelowy fokusu).

Aby to wywołanie zakończyło się pomyślnie, niektóre inne elementy w aplikacji musiały się wcześniej skupić. Ponadto gdy element kontenera nadrzędnego wywołuje tę metodę, w niektórych sytuacjach element podrzędny uzyskuje fokus, a wartość zwracana będzie .false Aby sprawdzić, czy element ma fokus, użyj IsKeyboardFocusWithin właściwości i IsKeyboardFocused .

Dotyczy

Produkt Wersje
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10