CustomControl
dll ( ) に派生クラスがありますMyNamespace.UI
。メイン アプリケーションでこのコントロールを使用するにはどうすればよいですか? プロジェクトへの参照を追加してから、カスタム XAML 名前空間を使用して自分の名前空間を指定しようとしましたが、見つかりません:
<Page ...
xmlns:ui="using:MyNamespace.UI"
...>
<Canvas>
<ui:MyControl />
</Canvas>
</Page>
エラーが発生します:
「MyControl」という名前は名前空間「using:MyNamespace.UI」に存在しません。
いろいろと調べてみると、以下の引用が見つかりました。
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
コントロールを元に戻しましたが、それでも機能しました。とても奇妙です。