2

重複の可能性:
XAML条件付きコンパイル

C#では、コードで次のことを実行できます。

#if COMPILING_AS_WINDOWS_PHONE_7
    //some random code
#else
    //some random code
#endif

これにより、プロジェクトのコンパイラ引数を使用して、異なる方法でコンパイルされる複数のプロジェクトを作成できます。言い換えれば、私は毎回車輪の再発明をする必要はありません。

ただし、XAMLでこれを行うにはどうすればよいですか?このオンラインについてはどこにも見つからないようです。

4

1 に答える 1

1

XAMLは常に.NETで自動生成されたコードを背後に持つ必要があるため、XAMLを制御することはできません。コードは自動的にコンパイルされ、すべての先行定義を無視します。

コメントを使用して、 <!-->コメント記号を使用して手動で行うことができます

唯一の実用的な解決策は、XAML定義をC#クラスとして完全にエンコードされたものとして完全に変換することです。したがって、純粋なC#クラスを使用してクラス制御ライブラリに変換します。または、コントロールの構成にマネージC++を使用することもできます。

唯一の欠点は、手作業での開発、保守、読み取り、変更が困難になることです。利点は、XAML用のコード生成ツールの1つを使用できることです。

そして最後に、#if #endifを使用すると、 Windows Phone / 8開発の両方に1つのコードライブラリ/コードソースを使用できますが、私の経験では、部分的なクラス共通のコードベースを使用する方が良いです(参照としてファイルを追加できますプロジェクト)。

于 2012-12-17T14:45:25.853 に答える