无法引用自定义用户控件

时间:2017-04-12 16:26:26

标签: c++ .net xaml uwp

我有自定义用户控件,我想将其包含在主页面中 ColorPalette.xaml.h (它还包含xamlxaml.cpp个文件,只是我没有发布它们。

namespace Colibry
{
    namespace Views {
        [Windows::Foundation::Metadata::WebHostHidden]
        public ref class ColorPalette sealed
        {
        public:
            ColorPalette();
        };
    }
}

MainPage.xaml

<Page
    x:Class="Colibry.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Colibry"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:cc="clr-namespace:Colibry.Views;assembly:Colibry"
    mc:Ignorable="d">
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <cc:ColorPalette></cc:ColorPalette>
    </Grid>
</Page>

xmlns:cc="clr-namespace:Colibry.Views;assembly:Colibry"输出错误:

  

Универсальныйкодресурса(URI)“clr-namespace:Colibry.Views; assembly:Colibry”неявляетсядопустимымидентификаторомпространстваимен。 Colibry E:\ Projects \ Colibry \ Colibry \ MainPage.xaml

英国人:

  

URI“clr-namespace:Colibry.Views; assembly:Colibry”不是名称空间的可用标识符。 Colibry E:\ Projects \ Colibry \ Colibry \ MainPage.xaml

如何解决?我只学习C ++ / XAML。

1 个答案:

答案 0 :(得分:1)

WPF / Silverlight / Windows Phone 8 方式:

xmlns:controls="clr-namespace:MyApp.Controls"

WinRT / Universal App 方式:

xmlns:controls="using:MyApp.Controls"

使用一个平台的语法将无法在另一个平台上编译,反之亦然。 &#34; clr-namespace与使用&#34;之间存在细微差别。这两篇文章将对此进行更详细的讨论。 XAML Namespaces and Namespace Mapping for WPF XAMLXAML namespaces and namespace mapping

最重要的是,你可以改变&#34; clr-namespace&#34;到&#34;使用&#34;并删除任何程序集标记和分号(将推断程序集)。结果如下:

  xmlns:cc="using:RefCustomControlTest"

我使用了自定义用户控件,如下面的代码,它工作得很好。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
  <cc:ColorPalette x:Name="test" />
</Grid>