私はWPFとSilverlightの両方で使用されるコードを記述しています。 C#では条件付きコンパイルに"#if SILVERLIGHT"
を使用できます。T4を使用したWPFおよびSilverlight用の統合XAML?
ただし、一部の属性が互換性がないため、XAMLでは完全に異なるXAMLファイルを使用する必要があります。 XAMLファイルは99%のようなもので、同期させるのは面倒です。
私はT4テンプレートに変換したいと思いますので、私はのようなものを行うことができます:ClipsToBounds()
は、WPFとSilverlightの異なるテキストを生成
<SomeControl <#=ClipsToBounds()#> />
。要件は次のとおりです。
- インテリセンスプロジェクトは自己完結することとVisual Studioの株式バージョンで動作しなければならない
- ビルド時に生成されたXAML
- テンプレートでの作業中:様々なのSDKのインストールおよびサードパーティの編集者 受け入れ可能
- テンプレート実行の結果をソース管理にするべきではありません。 -
XAMLファイルのcustom tool
をMSBuild:Compile to TextTemplatingFileGenerator
から変更できますが、Intellisenseを失うことはありません。ただし、結果として生じるテンプレートは設計時に生成されます。ビルド時に生成されたことは大きな苦痛のようです。
誰もこの種のセットアップで成功した経験はありますか?
ポータブルクラスライブラリをオプションで使用していませんか? –
ポータブルクラスライブラリは共有された非UIコードの問題を解決します。ビューではなくMVVMを使用する場合、ViewModelレイヤに適しているはずです。 –