1

私は、ブラウザーで実行され、ComponentArt が提供するデータ視覚化機能を使用する Silverlight アプリを作成中です。ある時点で、WinRT xaml/c# バージョンを作成して、WindowsRT を含む Windows 8 のすべてのエディションを Windows ストア アプリとして実行できるようにしたいと考えています。

私の質問は、2 つのバージョン間でコードを最大限に再利用するために、どのようにアプローチすればよいかということです。2つのバージョンを持つ以外に方法はありません(コンポーネントアートの使用に縛られており、html/jsアプローチを使用できないため)。特に、Silverlight アプリで使用される xaml は Windows ストア アプリにどの程度移植可能ですか?

4

1 に答える 1

2

XAML は、使用する機能と同じくらい移植可能です。異なる名前空間と xmlns URI スキームを使用するため、同じ XAML ファイルを再利用することはできません。また、Silverlight は主にマウス + キーボード UI であり、WinRT/XAML は主にタッチであるため、UI を少し異なるものにしたいと思うでしょう。

XAML 以外の多くのコードを再利用できるように、必ず MVVM を使用してください。使用するコントロールを選択するときは、WinRT/XAML で使用できるか、適切な代替手段があることを確認してください。私が見た欠けているもののいくつかは、メソッド WriteableBitmap.Render()、、、RadialGradientBrush/バインディング、、またはコントロールでした。欠落している多くのコントロールのオープン ソース バージョンがありますが、Windows ストア アプリはタッチでうまく機能しないため、別の UI デザイン アプローチを使用することをお勧めします。TypeConverterAttributeStyleSetterTreeViewDataGridGridSplitter

参考TreeViewまでに、Silverlight Toolkit から WinRT にコントロールを移植するのに約 2 ~ 3 時間、コントロールに約 20 ~ 30 時間を費やし、さまざまな種類のデータ ポイントとシリーズを含むコントロールをCalendar移植するのに 20 ~ 30 時間を費やしました。 ChartMahmoud Moussa によるオリジナルのポート。使用する機能の複雑さに応じて、必要な労力は明らかに増加します。などを使用するだけの場合、Buttons, TextBoxes, TextBlocks, RadioButtons, CheckBoxesほとんどの場合、XAML を移植するためにコピー アンド ペーストを実行できます。また、テンプレート パーツと表示状態/表示状態グループがこれらのプラットフォーム間でわずかに異なるため、コントロールの再テンプレート化も避けます。そのため、作業をやり直すか、テンプレートの修正に時間を費やす必要があります。

于 2013-03-06T17:59:57.080 に答える