UIElement.Focus 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
嘗試將焦點設定至此項目。
public:
virtual bool Focus();
public bool Focus ();
abstract member Focus : unit -> bool
override this.Focus : unit -> bool
Public Function Focus () As Boolean
傳回
如果邏輯與鍵盤焦點設定至此項目,則為 true
,如果只有邏輯焦點設為此項目,或是呼叫此方法並未強制焦點變更,則為 false
。
實作
範例
下列範例會將焦點設定為 TextBox 所 Name參考的 ,然後調整 游標在 內 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
回 。
一般而言,焦點是由兩個不同的概念所控制:鍵盤焦點和邏輯焦點。 這兩個概念不一定相同。 如需詳細資訊,請參閱 焦點摘要 和 輸入概觀。
如果呼叫 Focus 傳 true
回 , IsKeyboardFocused 且 IsKeyboardFocusWithin 也是 true
。
如果相關的屬性還 true
不是 ,當您呼叫 Focus時,會依下列順序引發下列一或多個事件: PreviewLostKeyboardFocus、 PreviewGotKeyboardFocus (來源是新的焦點目標) 、、 IsKeyboardFocusedChanged、、 IsKeyboardFocusWithinChanged、 LostKeyboardFocus (GotKeyboardFocus 來源是新的焦點目標) 。
若要讓此呼叫成功,應用程式中的一些其他元素需要先前有焦點。 此外,當父容器元素呼叫這個方法時,在某些情況下,子系會取得焦點,而傳回值會是 false
。 若要測試專案是否有焦點,請使用 IsKeyboardFocusWithin
和 IsKeyboardFocused
屬性。