编写WPF WinForms控件包装

本文关键字:包装 控件 WinForms WPF 编写 | 更新日期: 2023-09-27 17:58:08

我使用的是一个win表单控件库,我没有它的源代码。

我的应用程序是c#WPF/XAML等。因此,我正在为WinForms控件编写包装器。除了一些不方便的小问题外,一切都很顺利。直到

我有两个Winforms窗体控件

public class WFC_A
{
}
public class WFC_B
{
    public WFC_A WFC_A_Property { get; set; }
}

和两个WPF控制

public class WPF_A
{
     private WFC_A wfca;
}
public class WPF_B
{
     private WFC_B wfcb;
     public static readonly DependencyProperty WPF_A_Property =
            DependencyProperty.Register("WPF_A_Property", typeof(WPF_A),
            typeof(WPF_B), new FrameworkPropertyMetadata(new PropertyChangedCallback(OnWPFAPropertyChanged)));
}

问题是当依赖属性更改时,我想引用WFC_a并将其保存为

wfcb.WFC_A_Property = WPF_A.wfca

1) 对于c++朋友类来说,这似乎是一个很好的例子,但这在c#中是不可用的。2) 这两个都是相当大的包装器类,我真的不想嵌套它们。3) 我可以公开内部的wfc属性,但我正在尝试将所有Winforms的内容抽象出来,以便稍后用另一个库替换它。

对于实现我想要做的事情的正确方式,有什么建议吗?

谢谢。

编写WPF WinForms控件包装

我能想到的最好的事情就是使属性内部化。如果你的包装器在应用程序使用的库中,他们不会知道你做了什么。如果包装器和您的应用程序在同一个程序集中,那么可能就不那么干净了。