WPFをベースとしたexeファイルやdllファイルにはリソースとしてxamlのコンパイル済みバイナリデータ(baml形式)が埋め込まれています。
各種ライブラリや標準のコントローラのデザインや機能をカスタマイズしたい時は、WPF Inspectorやsnoopなどでビジュアルツリーを探って調査したりしますが、一部分だけカスタマイズしたいのにも関わらず、ある程度まとまった階層まで遡及してテンプレートを修正しなければならない場合など、手っ取り早くXAML形式そのものを取得したくなります。
このような場合は、baml形式のデータをxaml形式に変換できるソフトを仕様すると便利なようです。フリーで有用なものをさがしてみたところ、ILSpyというデコンパイラが良さそうでした。
ILSpy
http://ilspy.net/
例えば、WPFの標準のボタンのXAMLを取得したい場合は、
PresentationFramework.Aero.dll(テーマ毎にDLLがある。この場合はAero)
を開きます。 ファイル名.g.resources の形式でリソースがありますので、その配下のbamlを開きます。
すると、右ペインのテキストビューにXAMLが表示されるので、任意のリソースを利用する事ができます。
コメントを残す