こんにちは私はWPFを学んでいて、現在RoutedEventsについて読んでいます。本「ProWPFinc#」には、以下に示すコードのスニペットがあります。
<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>
重要なのは、ルーティングされたイベントの違い/利点が見当たらないということです(この例で判断してください)。通常のC#では、同じことを行います。フォームのすべての要素にハンドラーを追加します(これがここで行われたように)。
最初、ルーティングされたイベントについて読んでいたとき、それはそのように機能しているようです。フォーム/コントロール/ウィンドウのすべての視覚要素の親にイベントハンドラーを追加します。子をクリックすると、mousedownイベントが発生し、ビジュアルツリーを下に移動します。イベントがグリッドに到達すると、イベントハンドラーが呼び出されます。しかし、私は間違っていたか、間違っていました。通常のイベントとルーティングされたイベントの違いを誰かに説明してもらえますか
編集コードの挿入で何か奇妙なことが起こっています。コードスニペット全体を挿入して、タグのみを取得します