5

したがって、すべてがタイトルにあります。WPF ウィンドウに UserControl を追加したいだけです。簡単に見えますが、UserControl は同じソリューション内の別のプロジェクト (Dll プロジェクト) にあります。そして、私はそれを参照することはできません。

だから、私の最善の試みはそのようなものです:

<Window xmlns:local="clr-namespace:MyWindowProject" x:Name="window"
    xmlns:other="clr-namespace:MyDllProject"
    x:Class="MyWindowProject.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
    <other:MyUserControl />
</Window>

エラーが 1 つだけあり、オートコンプリートが MyUserControl で機能しているため、作成方法がもうすぐ見つかることはわかっています。しかし、この奇妙なエラーが発生しました:「名前 'MyUserControl' は名前空間 "clr-namespace:MyDllProject" に存在しません。

私は何か間違ったことをしていると確信していますが、私は本当に何がわからない...

4

3 に答える 3

11

xmlns:other="clr-namespace:MyDllProject"

上記の import ステートメントは、ローカル プロジェクトの名前空間を指していることを示しています。他のプロジェクト (The Dll Project) の参照を追加する場合は、名前空間を次のように追加する必要があります。

xmlns:other="clr-namespace:MyDllProjectNamespace;assembly=MyDllProject"

これは、Other アセンブリに存在する名前空間を指します。

Xaml の名前空間を理解するには、この記事を参照してください。

条件using コントロールが他のアセンブリからアクセスできることを確認してください。

于 2013-07-02T10:25:39.300 に答える
1

ユーザー コントロールをコントロール ツール ボックスに追加し、そこからフォームにドラッグ アンド ドロップします。Visual Studio が名前空間などを処理します。

于 2013-07-02T10:17:26.213 に答える
-1

プロジェクトに dll 参照を追加します。このユーザーコントロールの名前空間を xaml に追加する投稿

xmlns:local="... dll path;assembly=...." と言います。

これで、xaml でユーザー コントロールにアクセスできるようになります。

于 2013-07-02T10:20:29.430 に答える