7

すべてのxamlファイルでxmlnsを宣言し、カスタムコントロールにプレフィックスを使用する必要があることに少しうんざりしています。clr名前空間を「http://schemas.microsoft.com/winfx/2006/xaml/presentation」にマップすることは可能ですか?

AssemblyInfo.csで次のことを試しました。

[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation","MyOwnNamespace")]

しかし、これはうまくいかないようです。それでも次のようなコンパイルエラーが発生します:

タグ「MyCustomControl」はXML名前空間「http://schemas.microsoft.com/winfx/2006/xaml/presentation」に存在しません。

注:私のコントロールは同じアセンブリ内にあります(単一のアセンブリがあります)。

4

1 に答える 1

9
  1. XmlnsDefinition残念ながら、コントロールが同じアセンブリで定義されている場合、で定義されたXaml名前空間にマップされたコントロールを使用することはできません。ただし、さまざまなアセンブリが正常に機能します。clr-namespaceこのための定義を使用する必要があります。

  2. コントロールをXamlのデフォルトの名前空間に追加するのはなぜですか?これをしないでください。名前空間にディレクティブSystemを追加したくないので、クラスに名前空間を使用するようなものです。using

于 2012-05-11T11:10:35.623 に答える