Silverlight の XAML と WPF のそれはよく似てるんですが非互換部分も結構あります。
それを VC++ のプリプロセッサを使って何とかしてしまうと言う方法が
Using the preprocessor to share incompatible XAML between SL and WPF ? Part 1
で紹介されています。
何とかすると言っても、使うのはプリプロセッサですから、XAML 上に
<TextBlock #if SILVERLIGHT Text="This is in Silverlight" #else Text="This is in WPF" #endif />
というように書いておくってことです。
もちろん、標準では #if なんて対応していませんから、ビルド時にプリプロセッサを呼び出すように PreprocessXaml.targets ファイルを用意しておき、これを自分の csproj ファイルに追記してやるという方法です。
紹介されているのは以上なんですが、#if を書きこんだ XAML ファイルをそのままでは Blend で読み込めないとかいろいろと制限も出て来そうですね。
記事のタイトルに “Part 1” と付いてるので、今後も続くのかな?
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。