我正在尝试为所有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的后代。它不适用于任何其他类型。
任何人都可以解释这种行为吗?这是bug,遗憾的是他们选择忽略它。
是否有其他方式可以通知应用程序/窗口中的任何新元素?
答案 0 :(得分:6)
也许您可以定义使用AttachedProperty/Behavior<T>
的{{1}},然后在根元素上指定它,并在行为中挂钩每个实例上的FrameworkPropertyMetadataOptions.Inherits
事件