Procedura: gestire un evento indirizzato
Aggiornamento: novembre 2007
In questo esempio viene illustrato il funzionamento degli eventi bubbling e come scrivere un gestore in grado di elaborare i dati dell'evento indirizzato.
Esempio
In Windows Presentation Foundation (WPF), gli elementi sono disposti in una struttura ad albero dell'elemento. L'elemento padre può partecipare alla gestione di eventi inizialmente generati dagli elementi figlio nella struttura ad albero dell'elemento. Questo è possibile grazie al routing degli eventi.
Per gli eventi indirizzati si utilizza in genere una delle due strategie di routing seguenti: bubbling o tunneling. In questo esempio viene considerato l'evento bubbling e viene utilizzato l'evento ButtonBase.Click per illustrare il funzionamento del routing.
Nell'esempio riportato di seguito viene utilizzata la sintassi degli attributi XAML per associare un gestore eventi a un elemento padre comune, che in questo esempio è StackPanel. Anziché associare singoli gestori eventi per ogni elemento Button figlio, nell'esempio viene utilizzata la sintassi degli attributi per associare il gestore eventi all'elemento StackPanel padre. Con questo modello di gestione di eventi viene illustrato in che modo utilizzare il routing di eventi come tecnica per ridurre il numero di elementi a cui è associato un gestore. Tutti gli eventi bubbling per ogni Button sono indirizzati tramite l'elemento padre.
Si noti che nell'elemento StackPanel padre, il nome di evento Click specificato come attributo è parzialmente qualificato mediante la denominazione della classe Button. La classe Button è una classe derivata ButtonBase che dispone dell'evento Click nel proprio elenco dei membri. La tecnica della qualifica parziale per l'associazione di un gestore eventi è necessaria se l'evento che viene gestito non esiste nell'elenco dei membri dell'elemento a cui viene associato il gestore dell'evento indirizzato.
<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>
Per l'esempio completo, vedere Esempio di gestione degli eventi indirizzati.
Vedere anche
Concetti
Cenni preliminari sugli eventi indirizzati
Terminologia della sintassi XAML