UIElement.Focus 方法

定義

嘗試將焦點設定至此項目。

public:
 virtual bool Focus();
public bool Focus ();
abstract member Focus : unit -> bool
override this.Focus : unit -> bool
Public Function Focus () As Boolean

傳回

如果邏輯與鍵盤焦點設定至此項目,則為 true,如果只有邏輯焦點設為此項目,或是呼叫此方法並未強制焦點變更,則為 false

實作

範例

下列範例會將焦點設定為 TextBoxName參考的 ,然後調整 游標在 內 TextBox的位置。

void OnClickMoveToStart(object sender, RoutedEventArgs e)
{
    tbPositionCursor.Focus();
    tbPositionCursor.Select(0, 0);
}
Private Sub OnClickMoveToStart(ByVal sender As Object, ByVal e As RoutedEventArgs)

    tbPositionCursor.Focus()
    tbPositionCursor.Select(0, 0)

End Sub

備註

若要成為焦點, Focusable 而且 IsEnabled 兩者都必須是 true

即使元素可取得焦點且有效, Focus 預覽事件仍可在特定樹狀結構中處理,例如,在複合控件) 中,可能不允許將焦點放在該元素上 (。 在這種情況下,這個方法會傳 false回 。

一般而言,焦點是由兩個不同的概念所控制:鍵盤焦點和邏輯焦點。 這兩個概念不一定相同。 如需詳細資訊,請參閱 焦點摘要輸入概觀

如果呼叫 Focustrue回 , IsKeyboardFocusedIsKeyboardFocusWithin 也是 true

如果相關的屬性還 true不是 ,當您呼叫 Focus時,會依下列順序引發下列一或多個事件: PreviewLostKeyboardFocusPreviewGotKeyboardFocus (來源是新的焦點目標) 、、 IsKeyboardFocusedChanged、、 IsKeyboardFocusWithinChangedLostKeyboardFocus (GotKeyboardFocus 來源是新的焦點目標) 。

若要讓此呼叫成功,應用程式中的一些其他元素需要先前有焦點。 此外,當父容器元素呼叫這個方法時,在某些情況下,子系會取得焦點,而傳回值會是 false。 若要測試專案是否有焦點,請使用 IsKeyboardFocusWithinIsKeyboardFocused 屬性。

適用於