Salut Je suis learningign WPF et actuellement je suis en train de lire sur RoutedEvents. Dans le livre « WPF Pro C# » il y a un certain snipet code que je vous présente ci-dessousWPF - Understanding RoutedEvents
<Window x:Class="RoutedEventsLearning.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" MouseUp="SomethingClicked" >
<Grid Margin="3" MouseUp="SomethingClicked">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Label Margin="5" Grid.Row="0" HorizontalAlignment="Left"
Background="AliceBlue" BorderBrush="Black" BorderThickness="1"
MouseUp="SomethingClicked">
<StackPanel MouseUp="SomethingClicked">
<TextBlock Margin="3"
MouseUp="SomethingClicked">
Image and text label</TextBlock>
<Image Stretch="None"
MouseUp="SomethingClicked" />
<TextBlock Margin="3"
MouseUp="SomethingClicked">
Courtesy of the StackPanel</TextBlock>
</StackPanel>
</Label>
<ListBox Grid.Row="1" Margin="5" Name="lstMessages"></ListBox>
<CheckBox Grid.Row="2" Margin="5" Name="chkHandle">
Handle first event</CheckBox>
</Grid>
</Window>
Le point est que je ne vois pas de différence/avantage des événements routés (judgin par cet exemple). En C# classique, je ferais la même chose - ajouter un gestionnaire à chaque élément de mon formulaire (comme cela a été fait ici). Au début, lorsque je lisais des événements routés, il semble que cela fonctionne de cette façon. J'ajoute un gestionnaire d'événements pour le parent de tous les éléments visuels sur mon formulaire/contrôle/windows. Si je clique sur l'enfant, l'événement mousedown est levé et descend dans l'arborescence visuelle. Si l'événement atteint la grille, le gestionnaire d'événements est appelé. Cependant, je me trompais ou je me trompais. Quelqu'un pourrait-il m'expliquer la différence entre les événements normaux et les événements routés
Modifier Quelque chose d'étrange se passe avec l'insertion d'un code. Insted de tout le code snipet je reçois seulement l'étiquette
Pour clarifier: La valeur par défaut de RoutingStrategy affecte uniquement les nouveaux événements RoutedEvents que vous définissez. Les événements définis sur les contrôles existants définissent tous une valeur spécifique, dans de nombreux cas Bubble pour l'événement normal et Tunnel pour l'événement Preview associé. –