执行各层次:界面表示层:以*.xaml文件形式存在;业务逻辑层:以*.xaml.cs文件形式存在;应用程序框架层:Presention Framework 3.0-3.5-4.0;系统层:MSIL和底层API以及操作系统内核。对于单线程模式,对象只能由创建自己的线程调用。XAML的执行方式如下:
WPF编译XAML过程中,XAML编译通常包括三项事情:将一个XAML文件转换为一种特殊的二进制格式(BAML:Binary Application Markup Language);将转换好的二进制资源嵌入到正在被创建的程序集中;然后执行链接操作将XAML和过程式代码自动连接起来。 每个XAML都会在编译过程中产生过程式代码,这是在编译过程中动态生成的,但这些过程代码仅仅是“粘合代码”Glue Code,类似于在运行时加载和解析松散XAML文件时所需要的代码(和普通的Win Form自动生成的代码用途类似),可以在.g.cs(.g.vb)文件中找到这些代码。先编译成BAML和过程代码,在BAML中进行静态元素层次和属性设置,运行时执行去创建对象层次,其中内联代码和事件描述在.g.cs文件里;代码经过普通.net编译进程,建立在元数据和MSIL上,最终结果是带有元数据和BAML的EXE或者DLL,动态加载XAML:XamlReader获取要加载的对象(比如说Window,Page等等)。动态编译:WPF Assemblies and Namespaces,Primary assemblies;WPF三个重要组成:PresentationCore、PresentationFramework和WindowsBase;重要的命名空间是System.Windows(除了System.Windows.Forms)和FrameworkElements。对普通用户界面特征的支持包括:Input focus、Layout、Styles、Data binding、Resources、Routed Events等。