我有一个复杂的 Silverlight 控件,我需要在 WPF 中具有相同的功能。有什么方法可以共享代码库吗?
最佳答案
确实需要分享三个方面:
- 代码文件(例如*.cs *.vb)
- XAML 文件(包括主题)
- 项目文件(例如*.csproj 和*.vbproj)
正如 Jaroslav 指出的,您可以对代码文件使用条件复杂化,C# 支持和 VB.Net .请记住,Silverlight 项目将默认定义 SILVERLIGHT 符号,因此您可以在条件语句中使用它。
代码文件的另一个技巧是使用 partial classes .这允许您将可能只适用于 Silverlight 或 WPF(但不能同时适用于两者)的整个代码块放在一个文件中。然后有选择地将该文件包含在您的项目中。
Xaml 文件有点难,因为 WPF 支持的一些东西不受 Silverlight 支持(例如自定义 MarkupExtensions 等)。实际上,我只是复制 XAML 文件并根据需要合并。
项目文件必须手动维护,这不是什么大问题。
关于c# - 是否可以为 WPF 和 Silverlight 编译相同的控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5288412/