Gewusst wie: Behandeln eines Routingereignisses

Aktualisiert: November 2007

Dieses Beispiel zeigt die Funktionsweise von Bubbling-Ereignissen und das Schreiben eines Handlers, der die Daten des Routingereignisses verarbeiten kann.

Beispiel

In Windows Presentation Foundation (WPF) werden Elemente in einer Elementstruktur angeordnet. Das übergeordnete Element kann sich an der Behandlung von Ereignissen beteiligen, die ursprünglich von untergeordneten Elementen in der Elementstruktur ausgelöst wurden. Dies ist aufgrund des Ereignisroutings möglich.

Routingereignisse verfolgen normalerweise eine der folgenden Routingstrategien: Bubbling oder Tunneling. In diesem Beispiel wird das Bubbling-Ereignis und das ButtonBase.Click-Ereignis verwendet, um das Routing zu verdeutlichen.

Im folgenden Beispiel wird die XAML-Attributsyntax verwendet, um einen Ereignishandler einem gemeinsamen übergeordneten Element hinzuzufügen. In diesem Beispiel ist dies StackPanel. Anstatt einzelne Ereignishandler für jedes untergeordnete Button-Element anzufügen, wird im Beispiel die Attributsyntax verwendet, um den Ereignishandler dem übergeordneten StackPanel-Element hinzuzufügen. Dieses Ereignisbehandlungsmuster zeigt, wie Sie das Ereignisrouting als Verfahren zum Reduzieren der Anzahl an Elementen verwenden, an die ein Handler angefügt wurde. Alle Bubbling-Ereignisse für die einzelnen Button-Elemente werden über das übergeordnete Element geroutet.

Beachten Sie, dass für das übergeordnete StackPanel-Element der als Attribut angegebene Click-Ereignisname teilweise qualifiziert wird, indem die Button-Klasse benannt wird. Die Button-Klasse ist eine von ButtonBase abgeleitete Klasse, deren Memberauflistung über das Click-Ereignis verfügt. Dieses Teilqualifikationsverfahren zum Anfügen eines Ereignishandlers ist erforderlich, wenn das behandelte Ereignis in der Memberauflistung des Elements nicht vorhanden ist, an das der Routingereignishandler angefügt ist.

<StackPanel
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="SDKSample.RoutedEventHandle"
  Name="dpanel"
  Button.Click="HandleClick"
>
  <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 Name="Button1">Item 1</Button>
  <Button Name="Button2">Item 2</Button>
  <TextBlock Name="results"/>
</StackPanel>

Das vollständige Beispiel finden Sie unter Beispiel für die Routingereignisbehandlung.

Siehe auch

Konzepte

Übersicht über die Eingabe

Übersicht über Routingereignisse

Terminologie der XAML-Syntax

Referenz

RoutedEvent

Weitere Ressourcen

Gewusst-wie-Themen zu Ereignissen

Beispiele für Ereignisse