如果一段XAML中存在一个标记需要从外部命名空间中解析, 就需要用到ParserContext类, 具体用法如下:
ParserContext pc = new ParserContext ();
pc.XmlnsDictionary.Add("" , "http://schemas.microsoft.com/winfx/2006/xaml/presentation" );
pc.XamlTypeMapper = new XamlTypeMapper (new string [0]);
pc.XamlTypeMapper.AddMappingProcessingInstruction(
"http://schemas.microsoft.com/winfx/2006/xaml/presentation" ,
"ClassLibrary1" ,
"ClassLibrary1" );
object o = XamlReader .Parse("<SharedResourceDictionary Source=/"pack://application:,,,/KeyOfVictory;component/Dictionary1.xaml/"/>" , pc);
XmlnsDictionary属性中存储XML命名空间和命名空间前缀的对应关系, XamlTypeMapper类型中存储XML命名空间和CLR命名空间的对应关系, 并且还存储了定义CLR命名空间的程序集名称, 需要注意的是程序集名称就是程序集的partial name, 不需要有dll后缀。