对于LoadedEvent路由事件提供类处理程序不会对大多数类工作(Routed event cla

2019-09-19 09:26发布

我想对所有加载注册事件处理程序:

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);

不幸的是我的处理程序只要求窗口和DatePicker的后裔。 它不会对任何其他类型的工作。

任何人都可以解释这种现象? 这是一个错误 ,遗憾的是他们选择忽视它。

有没有被通知在应用程序/窗口中的任何新元素一些其他的方式?

Answer 1:

也许你可以定义一个AttachedProperty/Behavior<T>使用FrameworkPropertyMetadataOptions.Inherits ,然后指定其根元素,并且在行为挂钩Loaded/Unloaded每个实例事件



文章来源: Routed event class handler for LoadedEvent does not work for most classes