Ваш XAML такой же портативный, как и функции, которые вы используете. Вы не можете повторно использовать одни и те же файлы XAML, так как они используют разные пространства имен и схемы URI xmlns, и вы, скорее всего, захотите сделать интерфейс немного отличающимся, поскольку Silverlight - это в первую очередь интерфейс мыши + клавиатура, а WinRT/XAML в первую очередь касается.
Убедитесь, что вы используете MVVM для повторного использования большого количества кода, отличного от XAML. При выборе того, какие элементы управления использовать - убедитесь, что они доступны в WinRT/XAML или имеют хорошие альтернативы. Некоторые из недостающих вещей, которые я видел, были WriteableBitmap.Render()
метод, RadialGradientBrush
, TypeConverterAttribute
, Style
/Setter
привязки, TreeView
, DataGrid
или GridSplitter
элементы управления. Хотя есть версии с открытым исходным кодом из многих отсутствующих элементов управления - вы, скорее всего, захотите использовать альтернативные подходы к дизайну интерфейса для приложений Windows Store, так как они не работают с сенсорным интерфейсом.
Для справки - я провел около 2-3 часов портирования TreeView
управления из Silverlight Toolkit для WinRT, вокруг столько для Calendar
управления и 20-30 часов в порт Chart
управления с множеством видов точек данных и серий - и это на вершине оригинального порта Махмуда Муссы. В зависимости от сложности функций, которые вы используете, требуемые усилия, очевидно, будут расти. Если вы просто используете Buttons, TextBoxes, TextBlocks, RadioButtons, CheckBoxes
и т. Д. - вы можете в основном сделать копию &, чтобы вставить XAML. Я также избегаю повторного набора элементов управления, поскольку части шаблонов и визуальные состояния/группы визуального состояния немного отличаются между этими платформами, поэтому вам нужно либо переделать работу, либо потратить время на исправление шаблонов.