Существует ли способ наблюдать WPF Направленные События?

Принятие строк ASCII:

string1 = 'Hello'
string2 = 'hello'

if string1.lower() == string2.lower():
    print("The strings are the same (case insensitive)")
else:
    print("The strings are NOT the same (case insensitive)")
12
задан Sorskoot 14 July 2009 в 09:23
поделиться

2 ответа

Да, но это требует размышлений. Вам лучше использовать такой инструмент, как Snoop , который уже выполняет тяжелую работу за вас.

На вкладке Events вы можете увидеть список событий и элемент, который обработал это.

12
ответ дан 2 December 2019 в 05:28
поделиться

Я нашел другой способ:

Я добавил это в загруженный обработчик моего UserControl.

var events = EventManager.GetRoutedEvents();
foreach (var routedEvent in events)
{
    EventManager.RegisterClassHandler(typeof(myUserControl), 
                                      routedEvent, 
                                      new RoutedEventHandler(handler));
}

и это метод обработчика:

internal static void handler(object sender, RoutedEventArgs e)
{
    if (e.RoutedEvent.ToString() != "CommandManager.PreviewCanExecute" &&
            e.RoutedEvent.ToString() != "CommandManager.CanExecute")
        Console.WriteLine(e.OriginalSource+"=>"+e.RoutedEvent);
}

События CanExecute в моем случае слишком много. Если вы тоже хотите их увидеть, просто удалите оператор if .

16
ответ дан 2 December 2019 в 05:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: