所以我有一个来自另一个项目的dll,它包含许多有用的类和控件(让我们称之为foo.dll)。我正在制作WPF应用。我需要在我的应用程序中使用其中一些。我为windows窗体创建了usercontrol,并从foo.dll引用了UserControlForMe。它显示,一切都很好。现在我想将我的usercontrol插入到wpf表单中。它看起来像这样:
<UserControl x:Class="FlatRectangular_Profile.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:uc="clr-namespace:FlatRectangular_Profile.UC"
Height="2093" Width="717">
<Grid Name="grid">
<WindowsFormsHost>
<uc:WindowsFormsProfManual ></uc:WindowsFormsProfManual>
</WindowsFormsHost>
</Grid>
</UserControl>
但是在这里我得到一个错误&#34;无法从foo.dll&#34;加载类型UserControlForMe。没有关于该错误的信息。同样,UserControlForMe在WindowsFormsProfManual中加载。所有这些都在一个类库中进行。我引用了foo.dll所需的一切。
不知道接下来该怎么做。我还尝试在usercontrol.loaded事件中的代码中加载它,但它也失败了,并显示了stacktrace,它导致了UserControlForMe的构造函数。
答案 0 :(得分:0)
我想您必须将程序集添加到命名空间导入中,以便将应用程序指向正确的方向:
xmlns:uc="clr-namespace:FlatRectangular_Profile.UC;Assembly=MyDLL"
答案 1 :(得分:0)
我找到了一个解决方法,因为我无法理解为什么它不起作用。如果我将foo.dll 直接中的UserControlForMe加载到windowsformhost,它可以工作。但是如果有一个“缓冲区”dll,它可以在这个dll中工作,但不会在进一步的窗口中打开。我还以编程方式将UserControlForMe添加到windowsformhost。