我不太明白这是什么意思(MSDN):
XAML directly represents the instantiation of objects in a specific set of backing types defined in assemblies. This is unlike most other markup languages, which are typically an interpreted language without such a direct tie to a backing type system.
什么是支持类型和支持类型系统?这些集合文件是否定义了XAML的标签?
答案 0 :(得分:4)
Backing Types
这里只是意味着存在与您的XAML声明匹配的特定的直接等效类。您的XAML是标记 - 但WPF程序集具有完全匹配的类,“支持那些”。
这与HTML相反;您的Web浏览器可能没有名为img
的类来匹配您的<img>
标记。它实际上可能;但HTML并不代表不同的支持类型。另一方面,XAML 意味着在其对象标记与代码中的实际类之间具有一对一的关系。
答案 1 :(得分:1)
粗略地讲,XAML是一种用于描述对象树的实例化和各种属性设置的语言。因此,它与CLR及其类型系统密切相关。它非常强大,它被WPF广泛使用,尽管没有什么可以阻止你将它用于其他类型的对象树。
使用此命名空间定义使XAML成为'WPF特定':
的xmlns = “http://schemas.microsoft.com/winfx/2006/xaml/presentation”
这告诉XAML解析器默认命名空间应该如上所定义,然后映射到所有各种WPF类类型。此URL由包含WPF特定类型的各种程序集定义,方法是在每个程序集上定义一个或多个XmlnsDefinitionAttribute,将各种程序集名称空间映射到XML名称空间。
有关XAML含义的其他信息,请参阅XAML Syntax In Detail。 XAML语言规范还有一个链接。值得注意的是,XAML是一种编译语言,其产品是可以实例化的.NET类。它是一种用于有效描述深层嵌套和复杂内容的语言,具有属性值赋值和向集合添加元素,这可能是C#难以实现的。但是,XAML编译器确实支持代码隐藏,它允许您将其他C#代码与XAML构造的类相关联。