Search

'WPF namespace'에 해당되는 글 1건

  1. 2008.12.16 WPF Multiple Namespace mapping (5)

WPF Multiple Namespace mapping

프로그래밍 2008.12.16 22:11 Posted by 아일레프

.. 제목이 적당한지는 잘 모르겠네요. 예전부터 사실 궁금한 것이 있었는데~

 

왜 보통 WPF를 사용할 때 XAML에서 namespace 선언 하지 않습니까?

 

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

 

default namespaceWPF 기본 Control들을 사용하기 위한 namespace이고,

x:prefix로 사용하는 namespace XAML 키워드를 사용하기 위한 namespace이지요.

 

여기에 사용하고 싶은 namespace를 추가할 수도 있지요. 가령 mscorlib System namespace를 사용하고 싶다면 xmlns:system="clr-namespace:System;assembly=mscorlib" 요로코롬 사용해주면 되구요. 여러분이 직접 만든 namespace도 위와 같은 식으로 선언해 XAML에서 여러분의 Object를 선언해 줄 수도 있습니다.

 

그런데 clr-namespace:namespace;assembly=assemblyName과 같은 방법 말고 http:// 사용해서 정의할 수는 없을 까요? 왠지 뽀대나는 느낌이 들 뿐아니라 편리하기도 할 것 같은데요,

예를 들어 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" namespace에는 하나 이상의 namespace mapping되어 있습니다. 이와 같이 여러 namespace http namespace를 사용 해 묶어서 정의 할 수있으면 좋을 것 같은데 말이죠.

 

당연히 방법이 있겠죠? 여러군데 찾아 보았지만 발견하지 못했는데 WPFToolKit 소스 코드에 해답이 있더군요. assemblyInfo에 다음과 같이 정의되어 있더군요.

 

 

[assembly:XmlnsDefinition("http://schemas.microsoft.com/wpf/2008/toolkit", "Microsoft.Windows.Controls")]

[assembly: XmlnsDefinition("http://schemas.microsoft.com/wpf/2008/toolkit", "Microsoft.Windows.Controls.Primitives")]

오호라~ 요녀석이군요. 캬캬캬

 

Microsoft.Windows.Controls라는 namespaceMicrosoft.Windows.Controls.Primitives라는 namespacehttp://schemas.microsoft.com/wpf/2008/toolkit 에 매핑하고 있네요. 시험삼아 저도 해보았습니다.

 

Project를 생성하고 AssemblyInfo.cs에 다음을 추가해보았죠

[assembly: XmlnsDefinition("http://illef.tistory.com", "MyProject")]

그리고 이 프로젝트를 다른 프로젝트에서 참조하고 XAML에서 해보니~ 오오 인텔리센스로 http://illef.tistory.com이 튀어 나오네요~


혹시 msdn에 떡하니 나와있는 내용이라면 난 챔피언!!

신고