WinRTのとWP8の間でコードを共有する:XAML clr-namespace - 非互換性を使用していますか?
WP8は望んでいる:
xmlns:vm="clr-namespace:MyApp.ViewModels"
WinRTのが望んでいる:
xmlns:vm="using:MyApp.ViewModels"
はこれを使用すると、XAMLコードを共有することができないことを意味する - ユーザーコントロールのように - プロジェクト間でWP7、Silverlight、WPFで可能な方法
誰かが回避策を見つけましたか? XmlnsDefinition
属性はこれを修正するかもしれないように見えましたが、MSはそれをWinRTから取り出しました。
XAML共有は各プロジェクトでXAMLファイルの別々のコピーを実際に維持することによってのみ可能でした。したがって、「共有」はちょっとした誤解です。ポータブルクラスライブラリの登場により、実際には多少変更されましたが、すべてのターゲットプラットフォームに存在するタイプとメソッドの使用に限られていました。この場合、共有は「テキストをコピーする」だけなので、これを実行することができます(WinRTの「使用」を調整する必要があることを除いて)。 – dlev
あなたは必要ありませんファイルをコピーするには、リンクされたファイルとして追加するだけで済みます。そのため、1つのファイルを管理するだけです。この変更により、もはや明らかに不可能です。 – Kenneth
実際には、WP7/SL/WPFでは、基本コントロールに固執すれば、XAMLを共有できます。あなたの主なxamlをusercontrolsに入れるのがこのトリックです。ユーザコントロールは、各VSプロジェクトへのリンクとして共有できます。次に、ページやウィンドウ、またはユーザーコントロールを組み込んだ各プロジェクトの内容を定義します。 – jlo