C# 是否可以为WPF和Silverlight编译相同的控件?
我有一个Silverlight的复杂控件,我需要在WPF中具有相同的功能。有没有共享代码库的方法?确实有三个方面需要共享:C# 是否可以为WPF和Silverlight编译相同的控件?,c#,.net,wpf,silverlight,C#,.net,Wpf,Silverlight,我有一个Silverlight的复杂控件,我需要在WPF中具有相同的功能。有没有共享代码库的方法?确实有三个方面需要共享: 代码文件(如*.cs*.vb) XAML文件(包括主题) 项目文件(如*.csproj和*.vbproj) 正如Jaroslav指出的,您可以对代码文件使用条件复杂度,这是由和支持的。请记住,默认情况下Silverlight项目将定义Silverlight符号,因此您可以在条件语句中使用该符号 代码文件的另一个技巧是使用。这允许您将可能仅适用于Silverlight或WPF
.xaml
文件的文章。其思想是在源代码中创建一个代理控件,并在.xaml
中使用该控件:
namespace UnifiedXaml
{
public class MyWrapPanel: WrapPanel { }
}
如果控件在WPF和Silverlight中具有不同的功能,.+您可以为每个平台创建项目文件。@Jaroslav Jandek,谢谢C.O。有时可以创建项目并将其他项目中的文件添加为链接。但是有些Silverlight控件具有不同的属性,因此条件编译应该会有所帮助。
<UserControl x:Class="UnifiedXaml.TestControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ux="clr-namespace:UnifiedXaml">
<ux:MyWrapPanel></ux:MyWrapPanel>
</UserControl>