Dll参照を追加するときに奇妙な問題が発生しました。 WPFアプリケーションがあり、WPFを使用しようとしていますMDIライブラリ: http://wpfmdi.codeplex.com/
手順(非常にあいまいです)に記載されているように、VS2012の参照を右クリックし、_Add reference..
_をクリックし、_Browse..
_をクリックして、ダウンロードしたdllを追加しました。
次に、ウィンドウのXAMLに次の行を追加しました:手順に記載されているように_xmlns:mdi="clr-namespace:WPF.MDI;Assembly=WPF.MDI"
_。
ただし、XAMLに_<mdi:MdiContainer>
_を追加しようとすると、次のエラーメッセージが表示されます。
_The type 'mdi:MdiContainer' was not found. Verify that you are not missing an Assembly reference and that all referenced assemblies have been built.
_
_The name "MdiContainer" does not exist in the namespace "clr-namespace:WPF.MDI;Assembly=WPF.MDI".
_
これは私のXAMLです:
_<Window x:Class="QueryBuilder.Table"
xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
xmlns:mdi="clr-namespace:WPF.MDI;Assembly=WPF.MDI"
Height="300" Width="300" WindowStyle="ToolWindow" ResizeMode="NoResize" ShowInTaskbar="False">
</Window>
_
この問題は一日中私を苛立たせてきました。私は想像できるほとんどすべてを試しました。注目に値するのは、ライブラリのサイトからサンプルアプリケーションをダウンロードしたので、問題なく実行できることです。これに加えて、これをプロジェクトのxaml.csクラスに追加しました:WPF.MDI.MdiContainer d = new WPF.MDI.MdiContainer();
そしてそれはまったく問題なくコンパイルされます。
また、私の最初の問題は ここ と尋ねられ、どの提案も機能しなかったことにも注意してください。ただし、上記の段落は、コードがコードビハインドで正常にコンパイルされているが、XAMLファイルではコンパイルされていないことを示しているため、問題は変更されました。
EDIT:また、以下に示すように、アセンブリ参照のコードを参照できることを追加したいと思います。
私はついに自分で問題を解決しました-誰かが同じ問題を抱えている場合に備えて、この答えをここに残しておきます。ソリューション自体をアセンブリの参照パスに追加すると、問題が解決します。これが文書化されていないのは残念です...
EDIT:明確にするために、私が行ったのはdllではなくソリューションを追加することでした。つまり、すべてのクラスでMDIソリューションを追加しました。これは、ソースコードが利用可能なDLLにも当然当てはまります。
すべてを試した後もVisualStudioが文句を言ったり下線を引いたりする場合は、タスクマネージャーを使用してXDesProc.exeプロセスを終了し、ソリューションを再構築してください。 Visual StudioでのWPFとXAMLのサポートは、ひどいやり過ぎです。
http://wpfmdi.codeplex.com/
。Buildからslnファイルを取得し、binから新しい.dllを使用し、それを使用すると、問題なく動作しました。