我CustomControl
在 dll ( MyNamespace.UI
) 中有一个派生类。如何在我的主应用程序中使用此控件?我尝试添加对项目的引用,然后使用自定义 XAML 命名空间指向我的命名空间,但找不到它:
<Page ...
xmlns:ui="using:MyNamespace.UI"
...>
<Canvas>
<ui:MyControl />
</Canvas>
</Page>
我收到一个错误:
名称空间“using:MyNamespace.UI”中不存在名称“MyControl”。
环顾四周,我设法找到了以下报价:
映射中未指定定义 XAML 命名空间的支持类型的程序集的名称。可用程序集的逻辑在应用定义级别进行控制,并且是基本应用部署和安全原则的一部分。将要作为 XAML 的代码定义源包含的任何程序集声明为项目设置中的依赖程序集。
http://msdn.microsoft.com/en-gb/library/windows/apps/jj150588.aspx
有人可以指出项目设置中“依赖程序集”设置的方向吗?
编辑在确保根命名空间项目设置与我的控件(MyNamespace.UI
)的命名空间匹配后,我可以编译项目。但我无法让它运行,因为我收到了大量的崩溃信息,其中包含以下信息:
WinRT 信息:无法创建类型为“MyNamespace.UI.MyControl”的实例 [行:44 位置:37]
没有关于它为什么无法控制的信息......我逐步完成了的构造函数,MyControl
异常被抛出InitializeComponent()
。这是我的 UserControl ( MyControl
) 的 XAML:
<UserControl
x:Class="MyNamespace.UI.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">
<Grid>
</Grid>
</UserControl>
编辑 2我删除了Grid
控件,构建并运行,它工作,所以我把Grid
控件放回去,它仍然工作。很奇怪。