4

我正在尝试为所有 Loaded 事件注册处理程序:

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>that uses FrameworkPropertyMetadataOptions.Inherits,然后在您的根元素上指定它,并在行为挂钩Loaded/Unloaded每个实例上的事件

于 2012-07-13T13:23:11.650 回答