WPF アプリケーションで発生するすべての RoutedEvents を監視する方法があるかどうか疑問に思っていました。コンソールに発生したイベントに関する情報を書き込む方法は、何が起こっているかを確認するのに最適です。
6255 次
2 に答える
19
別の方法を見つけました:
これを 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ステートメントを削除してください。
于 2009-07-14T11:53:28.700 に答える
15
はい、しかし、それにはいくつかの反省が必要です。Snoopのような、面倒な作業を既に行ってくれるツールを使用する方がよいでしょう。
[イベント] タブでは、イベントのリストとそれを処理した要素を確認できます。
于 2009-07-14T09:26:40.277 に答える