WPF를 처음 접하였을 때 정말 복잡한 암호 처럼 보였던
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
라는 문장을 보며 당췌 이게 뭐하는 것인지 몰랐습니다.
익스플로러에 저 URL을 두들겨 봐도 아무것도 없는 황당함... 외우는 것에 취약한 저는 쉐뜨를 연발 하며, WPF는 내가 공부 할 수 있는 뭔가가 아닌가보다 라며 절망에 빠졌던 기억이 있습니다.
어셈블리 PresentationFramework.dll version 4.0.0.0 을 디스어셈블 하여 보니....
다음과 같이 NameSpace와 맵핑 된 것이 하드 코딩 되어 있는 것을 확인 할 수 있었습니다.
1. winfx 영역
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Shapes")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Navigation")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Controls")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Documents")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Shell")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Data")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation","System.Windows.Controls.Primitives")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation","System.Windows.Media.Animation")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Input")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Media")
XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml", "System.Windows.Markup")
2. netfx 영역
XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Controls")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Navigation")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Documents")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Shapes")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Shell")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Navigation")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Data")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation","System.Windows.Controls.Primitives")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation","System.Windows.Media.Animation")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Input")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Media")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Shapes")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Shell")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2007/xaml/presentation", "System.Windows.Controls")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Data")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation","System.Windows.Controls.Primitives")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation","System.Windows.Media.Animation")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Input")
XmlnsDefinition("http://schemas.microsoft.com/netfx/2009/xaml/presentation", "System.Windows.Documents")
3. xps영역
XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Input")
XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Media.Animation")
XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Controls")
XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Documents")
XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Shapes")
XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Navigation")
XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Data")
XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows")
XmlnsDefinition("http://schemas.microsoft.com/xps/2005/06", "System.Windows.Controls.Primitives")
사실 WPF를 학습하면서 XAML이 어떻게 구성되며, 어떤 네임스페이스를 사용하는지 알아야 하는 경우는 발생하지 않았으나 XAML을 구성하는데 있어서 어떤 네임스페이스를 사용하고 있는지 알아 두는 것도 나쁘지 않을 것 같아 정리 합니다.
XAML 코드에 기본 네임스페이스 말고 다른 네임스페이스를 언제 사용하게 될지 모르기 때문에 말이죠.
사실 이 정리는 역어셈블을 통해 취득한 내용이므로 이것이 전체 네임스페이스 인지 아닌지는 알 수 없습니다.
아마도 제가 찾지 못했던 MSDN의 어느 구석에는 이 맵핑 정보가 있을지도 모르겠습니다.
OTL... 이 맵핑 정보 하나 알아내는 것도.. 어마 어마한 노력이...... 머리 나쁜 개발자는 점점 더 설곳이 없어지는거 같습니다.........
http://msdn.microsoft.com/ko-kr/library/ms747086(v=vs.110).aspx
MSDN의 관련 정보 입니다.
'Functional World > WPF' 카테고리의 다른 글
XmlnsDefinition 으로 NameSpace 맵핑 하기.... (0) | 2015.06.10 |
---|---|
WPF - DependencyObject, DenpendencyProperty (0) | 2013.11.29 |