XAML的执行方式

简介: 执行各层次:界面表示层:以*.xaml文件形式存在;业务逻辑层:以*.xaml.cs文件形式存在;应用程序框架层:Presention Framework 3.0-3.5-4.0;系统层:MSIL和底层API以及操作系统内核。

执行各层次:界面表示层:以*.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上,最终结果是带有元数据和BAMLEXE或者DLL,动态加载XAML:XamlReader获取要加载的对象(比如说WindowPage等等)动态编译:WPF Assemblies and NamespacesPrimary assembliesWPF三个重要组成:PresentationCorePresentationFrameworkWindowsBase;重要的命名空间是System.Windows(除了System.Windows.Forms)FrameworkElements。对普通用户界面特征的支持包括:Input focusLayoutStylesData bindingResourcesRouted Events等。

目录
相关文章
|
C# 前端开发
WPF中Style文件的引用——使用xaml代码或者C#代码动态加载
原文:WPF中Style文件的引用——使用xaml代码或者C#代码动态加载   WPF中控件拥有很多依赖属性(Dependency Property),我们可以通过编写自定义Style文件来控制控件的外观和行为,如同CSS代码一般。
4832 0
WPF界面无法正常显示(资源引用,如转换器),但程序正常运行
WPF界面无法正常显示(资源引用,如转换器),但程序正常运行
WPF界面无法正常显示(资源引用,如转换器),但程序正常运行
|
C#
WPF中,怎样将XAML代码加载为相应的对象?
原文:WPF中,怎样将XAML代码加载为相应的对象? 在前面“在WPF中,如何得到任何Object对象的XAML代码?”一文中,我介绍了使用System.Windows.Markup.XamlWriter.Save(objName)得到任何Object对象的XAML代码。
954 0
|
C# 前端开发 设计模式
WPF设计界面不执行代码
原文:WPF设计界面不执行代码 一般在我们在设计WPF XAML界面时,XAML 引用一些后端的类。比如UserControl、Converter、MVVM,引用 xmlns:ALLUserControl="clr-namespace:程序集名.ALLUserControl;assembly=程序集名"。
1080 0
|
C# 前端开发 Windows
在WPF应用程序中利用IEditableObject接口实现可撤销编辑的对象
原文:在WPF应用程序中利用IEditableObject接口实现可撤销编辑的对象 这是我辅导的一个项目开发中的例子,他们是用WPF做界面开发,在学习了如何使用MVVM来实现界面与逻辑的分离,并且很好的数据更新之后,有一个疑问就是,这种双向的数据更新确实很不错,但如果我们希望用户可以撤销修改怎么办呢?其实这个功能,很早就有,甚至在原先的Windows Forms里面也可以实现。
989 0
|
JavaScript 前端开发 C++
COM组件开发实践(七)---多线程ActiveX控件和自动调整ActiveX控件大小(上)
声明:本文代码基于CodeProject的文章《A Complete ActiveX Web Control Tutorial》修改而来,因此同样遵循Code Project Open License (CPOL)。
883 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等