c# - 是否可以为 WPF 和 Silverlight 编译相同的控件?

标签 c# .net wpf silverlight

我有一个复杂的 Silverlight 控件,我需要在 WPF 中具有相同的功能。有什么方法可以共享代码库吗?

最佳答案

确实需要分享三个方面:

  1. 代码文件(例如*.cs *.vb)
  2. XAML 文件(包括主题)
  3. 项目文件(例如*.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/

相关文章:

.net - 为什么静态类只能有静态成员?

c# - C# 中动态字典的使用

C#,以编程方式查找任何过去的 BSOD 并获取代码

c# - WPF UserControl - Usercontrol DataGrid 的 SelectedItem 绑定(bind)到 UserControl 外的 DataGrid 的 ItemSource

C#:限制控制台应用程序的调用方式

c# - 如何使用 ASP.Net MVC 根据需要动态设置字段?

c# - .where(...).Any() 与 ..Any(...) 之间的性能差异

c# - 在后面的代码中更改光标

c# - 在代码中使用 XAML resourceDictionary

c# - 在应用程序配置文件中找不到名为 '' 的连接字符串