0

Silverlight と wpf バージョンのアプリケーションに同じ xaml ファイルを使用したいと考えています。

私が必要とする唯一の違いはスタイリングです。xaml でスタイルを使用しました。しかし、シルバーライトの場合、スタイリングはテーマの形式でアプリケーションレベルで定義されるため、xaml ファイルでスタイリングを使用したくありません。

silvelight と wpf のバージョンで同じ xaml ファイルを使用する他の方法はありますか? そうしないと、個別の xaml ファイルを維持する必要があります。

4

1 に答える 1

0

両方でかなりの xaml を再利用できます。私はすべての同じファイル、xaml、コード ビハインドをリンクしているプロジェクトを持っていますが、それは適切に機能します。

たとえば、wpf には itemscontrol のテンプレート セレクターがあり、silverlight にはありません。

SizeToContent を使用すると、2 つの動作が異なる傾向があります。避けることをお勧めします。

2 つのファイルの違いを保持できる別の「ベース」リソースを用意することをお勧めします。たとえば、イベント トリガーのようなものは、Silverlight ではほとんど埋められていません。バージョンごとに基本クラスがあり、それらはそれらの違いを抽象化します。次に、キーに同じマークを付けて、リンクされたファイルの静的リソースとして使用できます。

もう 1 つの大きな落とし穴は、uielements、loaded、layout、apply template イベントが異なる順序で適用される順序イベントに注意する必要があるため、テンプレート化されたコントロールを作成する場合は、そこに注意する必要があります。取引を妨げるものではありません。あなたはそれを回避することができますが、注意してください。

他に注意すべき点 -silverlight コマンドにはもう少し手間がかかります。ICommand を実装する必要があります。wpf では常にそうであるとは限りません。ただし、実装を使用してコードの共有を支援します。-wpf はスーパーセットであり、Silverlight にはない多くの機能を備えています。通常、これらは便利な方法であり、回避したいだけです。良い例はプレビュー イベントです。Silverlight にはありませんが、通常は動作に一致するイベントを見つけることができます。

于 2012-08-09T13:17:28.733 に答える