2017-04-12 36 views
0

我有一個自定義的用戶控件,我想將其包含在主頁面中。
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

For Englishman:

URI "clr-namespace:Colibry.Views;assembly:Colibry" is not available identifier of the name space. Colibry E:\Projects\Colibry\Colibry\MainPage.xaml

如何解決?我只學習C++/XAML。

回答

1

WPF/Silverlight中/的Windows Phone 8方式:

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

的WinRT /通用的應用方式:

xmlns:controls="using:MyApp.Controls"

使用一個平臺的語法將無法編譯上另一個,反之亦然。 「clr-命名空間和使用」之間存在細微差別。這在這兩篇文章中有更詳細的討論。 XAML Namespaces and Namespace Mapping for WPF XAMLXAML namespaces and namespace mapping。最重要的是,您可以將「clr-namespace」更改爲「using」,並刪除任何程序集標記和分號(將推斷程序集)。結果是這樣的:

xmlns:cc="using:RefCustomControlTest" 

我已經使用自定義usercontrol像下面的代碼,它工作得很好。

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

非常感謝!有用! –