5

所以,一切都在标题中,我只想在我的 WPF 窗口中添加一个 UserControl。看起来很简单,但 UserControl 位于同一解决方案中的另一个项目(Dll 项目)中。我只是无法引用它。

所以,我最好的尝试是这样的:

<Window xmlns:local="clr-namespace:MyWindowProject" x:Name="window"
    xmlns:other="clr-namespace:MyDllProject"
    x:Class="MyWindowProject.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
    <other:MyUserControl />
</Window>

我知道我快要找到方法了,因为我只有一个错误,并且自动完成功能正在 MyUserControl 上运行。但是,我遇到了这个奇怪的错误:“名称‘MyUserControl’在命名空间‘clr-namespace:MyDllProject’中不存在。

我确定我做错了什么,但我真的不知道是什么......

4

3 回答 3

11

xmlns:other="clr-命名空间:MyDllProject"

上面的 import 语句表明您指向的是本地项目的命名空间。如果你想添加另一个项目(The Dll Project)的refrance,那么你必须像这样添加命名空间

xmlns:other="clr-namespace:MyDllProjectNamespace;assembly=MyDllProject"

这将指向存在于其他程序集中的命名空间。

请参阅本文了解 Xaml 中的命名空间

条件确保使用控件可以从其他程序集中访问。

于 2013-07-02T10:25:39.300 回答
1

将您的用户控件添加到控件工具箱中,然后从那里拖放到您的表单中。Visual Studio 将负责命名空间和类似的事情。

于 2013-07-02T10:17:26.213 回答
-1

将 dll 引用添加到您的项目中。发布将此用户控件的命名空间添加到您的 xaml

说 xmlns:local="... dll 路径;程序集=...."

现在可以在您的 xaml 中访问用户控件

于 2013-07-02T10:20:29.430 回答