4

ロードされたすべてのイベントのハンドラーを登録しようとしています。

EventManager.RegisterClassHandler(typeof(UIElement), FrameworkElement.LoadedEvent, new RoutedEventHandler(OnRoutedEvent), true);
EventManager.RegisterClassHandler(typeof(ContentElement), FrameworkContentElement.LoadedEvent, new RoutedEventHandler(OnRoutedEvent), true);
EventManager.RegisterClassHandler(typeof(UIElement), FrameworkElement.UnloadedEvent, new RoutedEventHandler(OnRoutedEvent), true);
EventManager.RegisterClassHandler(typeof(ContentElement), FrameworkContentElement.UnloadedEvent, new RoutedEventHandler(OnRoutedEvent), true);

残念ながら、私のハンドラーは、WindowとDatePickerの子孫に対してのみ呼び出されます。他のタイプでは機能しません。

誰かがこの振る舞いを説明できますか?それはバグです、悲しいことに彼らはそれを無視することを選択しました。

アプリケーション/ウィンドウの新しい要素について通知を受ける他の方法はありますか?

4

1 に答える 1

6

おそらく、AttachedProperty/Behavior<T>を使用するを定義し、それをルート要素で指定し、動作で各インスタンスのイベントをFrameworkPropertyMetadataOptions.InheritsフックすることができますLoaded/Unloaded

于 2012-07-13T13:23:11.650 に答える