2011-01-25 9 views
2

Silverlightでは、カスタムコントロールのデフォルトのxmlns名を設定できますか?デフォルトではSilverlightカスタムコントロールのデフォルトxmlns

、私はドラッグしてウィンドウの上に私のカスタムCONTRLのいずれかをドロップするたびに、アセンブリとコントロールが自動的にXAMLに追加されます。

... 
xmlns:my="clr-namespace:MyAssemblyName;assembly=MyAssemblyName" 
... 
<my:MyCustomControl Name="whatever"/> 

Everthingは私がしたい罰金exectの作品手動でXAMLを編集することなく、 "my"名前空間を別のもの(MyAssemblyName)で置き換えます。

答えて

4

XmlnsPrefixAttributeアセンブリ属性で使用されるプレフィックスを制御できる必要があります。通常は、これをプロジェクトのプロパティフォルダにあるAssemblyInfo.csに配置します。 XAML名前空間をアセンブリと.NET名前空間から分離するには、XmlnsDefinitionAttributeを追加することもできます。

[assembly: XmlnsDefinition("http://schemas.yourorganisation.com/controls", "MyAssemblyName")] 
[assembly: XmlnsPrefix("http://schemas.yourorganisation.com/controls", "myc")] 

、あなたが取得する必要ツールバーからコントロールをドロップすると今: -

... 
xmlns:myc="http://schemas.yourorganisation.com/controls" 
... 

<myc:MyCustomControl Name="whatever" /> 

あなたは今コントロールを含む複数の.NET名前空間を作成し、それらのすべてをマッピングAssemblyInfoで複数のXmlnsDefinitionエントリを追加することができますそれらを同じxml名前空間に、したがって同じ接頭辞に置き換えます。同じ単一のxml名前空間にすべてマッピングする複数のコントロールライブラリプロジェクトを作成することもできます。

+0

+1の 'XmlnsPrefix'。私は 'XmlnsDefinition'について知っていましたが、' XmlnsPrefix'は知りませんでした。 – Nawaz

+0

アンソニーありがとう –

関連する問題