「XAMLというのは、階層関係のあるXML文書として記述する割に、完全な親子関係をAPIで取得できない」
「WinFormは取得できるよね?」
「そう。その理由は、実は階層関係は一度解体されて真の階層が再構成されるから」
「じゃあ、真の階層は取得できないの?」
「実は、VisualTreeHelperというクラスを経由すると取得できる」
「じゃあさ。それを使って階層表示するツールとかありそうじゃないか」
「あるんだよ。XAML Spyってのを使っていたのだがね、ある日突然サービスとクライアントの通信ができなくなったのだ。他のソフトの場合、ローカルホストとの通信は可能なので原因不明。ファイアウォールを切っても変化が無い」
「原因は?」
「さあ。良く分からないが時間も無いのでアンインストールしてしまった。既にそれを必要とするヤマ場は越えていたし、VisualTreeHelper経由でアクセスすれば用は足りたし」
「それが結論?」
「いや、うっかり見落としていた」
「なにを?」
「Visual Studio 2015にその機能は入っていた」
「えー」
- デバッグ実行開始
- メニューでデバッグ→ウィンドウ→ライブ ビジュアル ツリー
「ポイントはなに?」
「実行中でないとメニューには現れない。しかもデバッグメニューの下」
「なんで?」
「実行中に動的に構築されるツリーだから」
注意 §
「オプションのデバッグの設定でこの機能をオフにできるから注意してね」
「切っていたらメニューに出ないわけだね」
謝辞 §
biacさんありがとう。