UIElement.Focus 方法

定義

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

C#
public bool Focus();

傳回

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

實作

範例

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

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

備註

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

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

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

如果呼叫 Focustrue回 , IsKeyboardFocusedIsKeyboardFocusWithin 也是 true

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

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

適用於

產品 版本
.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