您的 XAML 与您使用的功能一样可移植。您不能重用相同的 XAML 文件,因为它们使用不同的命名空间和 xmlns URI 方案,而且您很可能希望 UI 略有不同,因为 Silverlight 主要是鼠标+键盘 UI,而 WinRT/XAML 主要是触摸。
确保使用 MVVM 能够重用大量非 XAML 代码。选择要使用的控件时 - 确保它们在 WinRT/XAML 中可用或有很好的替代品。我看到的一些缺失的东西是方法WriteableBitmap.Render()
、、、RadialGradientBrush
/绑定、TypeConverterAttribute
或 控件。尽管有很多缺失控件的开源版本 - 您很可能希望为 Windows 应用商店应用程序使用替代 UI 设计方法,因为这些方法不适用于触控。Style
Setter
TreeView
DataGrid
GridSplitter
供参考 - 我花了大约 2-3 个小时将TreeView
控件从 Silverlight Toolkit 移植到 WinRT,大约花费了大约Calendar
20-30 个小时来移植Chart
带有多种数据点和系列的控件 - 这是最重要的Mahmoud Moussa 的原始端口。根据您使用的功能的复杂性 - 所需的工作量显然会增加。如果您只是使用Buttons, TextBoxes, TextBlocks, RadioButtons, CheckBoxes
等 - 您主要可以复制和粘贴来移植 XAML。我还会避免重新模板化控件,因为这些平台之间的模板部分和视觉状态/视觉状态组略有不同,因此您需要重做工作或花时间更正模板。