21

私は WPF/Silverlight を学習しており、MS vidcast で使用することが推奨されていることを見ましRoutedEventArgsEventArgs。正確な理由は述べられていませんが。

特定のディスプレイ テクノロジ (Presenters/ViewModels) に結び付けられないように「ウィジェット」のインターフェイスを使用する win フォーム アプリを持っているので、IButton クリック イベントが今すぐ取る必要がある場合は、そうRoutedEventArgsではないと思います。便利です。

RoutedEventArgsすべての場合に切り替える必要があるかどうか、およびその理由を誰かが説明してもらえますか?

余談ですが、私が説明しているインターフェイスウィジェットの使用について、他の誰かが経験/意見を持っていますか?

4

3 に答える 3

38

基本的には、ソース要素からルート要素へ (イベント ルート)、またはルート要素からサブ レベル要素へ (イベント ルート)、頻度は低くなりますがRoutedEvent、ツリーを移動します。これが意味することは、 の内部にある場合、それ自体が;の内部にあるということです。コントロールでイベントを定義すると、いずれかが処理しない限り、すべてのイベントがトリガーされます。LogicalBubbleTunnelButtonStackPanelGridClick

イベント ルートがBubble(通常のイベントとして名前が付けられているClick) の場合、次のようになります。

Button -> StackPanel -> Grid

イベント ルートがTunnel(named PreviewClick) の場合、逆になります。

Grid -> StackPanel -> Button

これで、処理が簡単になりました。それがBubbleルートであり、が true にButton設定されている場合、それはトリガーされません。と同じで、がそれを処理する場合、とはそれをトリガーしません。RoutedEventArgs.HandledStackPanelGridRoutedEventGridStackPanelButton

これは一言で言えば私の理解です。簡単にするためにいくつかのものを避けました。

この WPF 機能をよりよく理解するために、この章をお勧めします。

于 2009-09-15T18:06:51.340 に答える