Delen via


Procedure: De kleur van een element wijzigen met focusevenementen

In dit voorbeeld ziet u hoe u de kleur van een element wijzigt wanneer het de focus krijgt en verliest met behulp van de gebeurtenissen GotFocus en LostFocus.

Dit voorbeeld bestaat uit een XAML-bestand (Extensible Application Markup Language) en een code-behind-bestand.

Voorbeeld

De volgende XAML maakt de gebruikersinterface, die uit twee Button objecten bestaat en gebeurtenis-handlers koppelt voor de GotFocus- en LostFocus-gebeurtenissen aan de Button-objecten.

<StackPanel>
  <StackPanel.Resources>
    <Style TargetType="{x:Type Button}">
      <Setter Property="Height" Value="20"/>
      <Setter Property="Width" Value="250"/>
      <Setter Property="HorizontalAlignment" Value="Left"/>
    </Style>
  </StackPanel.Resources>
  <Button
      GotFocus="OnGotFocusHandler"
      LostFocus="OnLostFocusHandler">Click Or Tab To Give Keyboard Focus</Button>
  <Button
      GotFocus="OnGotFocusHandler"
      LostFocus="OnLostFocusHandler">Click Or Tab To Give Keyborad Focus</Button>
</StackPanel>

Met de volgende code worden de GotFocus- en LostFocus-eventhandlers aangemaakt. Wanneer de Button de toetsenbordfocus krijgt, wordt de Background van de Button gewijzigd in rood. Wanneer de Button de toetsenbordfocus verliest, wordt de Background van de Button weer in wit gewijzigd.

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
    }

    // Raised when Button gains focus.
    // Changes the color of the Button to Red.
    private void OnGotFocusHandler(object sender, RoutedEventArgs e)
    {
        Button tb = e.Source as Button;
        tb.Background = Brushes.Red;
    }
    // Raised when Button losses focus.
    // Changes the color of the Button back to white.
    private void OnLostFocusHandler(object sender, RoutedEventArgs e)
    {
        Button tb = e.Source as Button;
        tb.Background = Brushes.White;
    }
}
Partial Public Class Window1
    Inherits Window

    Public Sub New()
        InitializeComponent()
    End Sub

    'raised when Button gains focus. Changes the color of the Button to red.
    Private Sub OnGotFocusHandler(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Dim tb As Button = CType(e.Source, Button)
        tb.Background = Brushes.Red
    End Sub

    'raised when Button loses focus. Changes the color back to white.
    Private Sub OnLostFocusHandler(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Dim tb As Button = CType(e.Source, Button)
        tb.Background = Brushes.White
    End Sub
End Class

Zie ook