Keyboard.GotKeyboardFocus 附加事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
項目收到鍵盤焦點時發生。
see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler
see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler
see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler
範例
下列範例會TextBox建立 並附加 事件和 LostKeyboardFocus 事件的事件處理程式GotKeyboardFocus。 TextBox取得鍵盤焦點時,背景色彩會變更,並清除的TextBox文字。 TextBlock當 失去鍵盤焦點時,背景色彩會變更,而且會呼叫方法,以重設範例中使用的變數。
<Border BorderBrush="Black" BorderThickness="1"
Width="200" Height="100" Margin="5">
<StackPanel>
<Label HorizontalAlignment="Center" Content="Type Text In This TextBox" />
<TextBox Width="175"
Height="50"
Margin="5"
TextWrapping="Wrap"
HorizontalAlignment="Center"
VerticalScrollBarVisibility="Auto"
GotKeyboardFocus="TextBoxGotKeyboardFocus"
LostKeyboardFocus="TextBoxLostKeyboardFocus"
KeyDown="SourceTextKeyDown"/>
</StackPanel>
</Border>
private void TextBoxGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
TextBox source = e.Source as TextBox;
if (source != null)
{
// Change the TextBox color when it obtains focus.
source.Background = Brushes.LightBlue;
// Clear the TextBox.
source.Clear();
}
}
Private Sub TextBoxGotKeyboardFocus(ByVal sender As Object, ByVal e As KeyboardFocusChangedEventArgs)
Dim source As TextBox = TryCast(e.Source, TextBox)
If source IsNot Nothing Then
' Change the TextBox color when it obtains focus.
source.Background = Brushes.LightBlue
' Clear the TextBox.
source.Clear()
End If
End Sub
private void TextBoxLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
TextBox source = e.Source as TextBox;
if (source != null)
{
// Change the TextBox color when it loses focus.
source.Background = Brushes.White;
// Set the hit counter back to zero and updates the display.
this.ResetCounter();
}
}
Private Sub TextBoxLostKeyboardFocus(ByVal sender As Object, ByVal e As KeyboardFocusChangedEventArgs)
Dim source As TextBox = TryCast(e.Source, TextBox)
If source IsNot Nothing Then
' Change the TextBox color when it loses focus.
source.Background = Brushes.White
' Set the hit counter back to zero and updates the display.
Me.ResetCounter()
End If
End Sub
備註
這是附加的事件。 WPF 會將附加事件實作為路由事件。 附加事件基本上是一種 XAML 語言概念,可參考未定義該事件的物件上可處理的 XAML 語言概念,WPF 也會藉由讓事件周遊路由來擴充該事件。 附加事件在程式代碼中沒有直接處理語法;若要在程式代碼中附加路由事件的處理程式,您可以使用指定的 Add*Handler 方法。 如需詳細資訊,請參閱 附加事件概觀。
鍵盤焦點是指接收鍵盤輸入的物件。 具有鍵盤焦點的項目已 IsKeyboardFocused 設定為 true
。 整個桌面上只能有一個鍵盤焦點的專案。 邏輯焦點是指焦點範圍內具有焦點的物件。 如需焦點、鍵盤焦點和邏輯焦點的詳細資訊,請參閱 輸入 概觀和 焦點概觀。
PreviewGotKeyboardFocus如果已處理事件或PreviewLostKeyboardFocus事件,鍵盤焦點就會變更。
路由事件資訊
標識元欄位 | GotKeyboardFocusEvent |
路由策略 | 鼓 泡 |
代理人 | KeyboardFocusChangedEventHandler |
- 對應的通道事件為 PreviewGotKeyboardFocus。