2

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控件放回去,它仍然工作。很奇怪。

4

1 回答 1

1

您需要确保MyNamespace.UI程序集具有RootNamespace匹配的属性MyNamespace.UI。此属性无法在项目设置页面中更改,但您可以通过记事本或等效工具进行更改。我RootNamespace的设置为UI,当我更改它时,它开始工作。

于 2013-02-06T14:31:55.423 回答