CN100530083C - 用于创建应用程序的系统及方法 - Google Patents

用于创建应用程序的系统及方法 Download PDF

Info

Publication number
CN100530083C
CN100530083C CNB2004100785041A CN200410078504A CN100530083C CN 100530083 C CN100530083 C CN 100530083C CN B2004100785041 A CNB2004100785041 A CN B2004100785041A CN 200410078504 A CN200410078504 A CN 200410078504A CN 100530083 C CN100530083 C CN 100530083C
Authority
CN
China
Prior art keywords
service
group
class
data
application program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004100785041A
Other languages
English (en)
Other versions
CN1609792A (zh
Inventor
J·L·伯格丹
R·A·雷耶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1609792A publication Critical patent/CN1609792A/zh
Application granted granted Critical
Publication of CN100530083C publication Critical patent/CN100530083C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Abstract

一种编程接口提供生成应用软件、文档、媒体表示和其他内容的函数。这些函数允许开发者获取来自操作系统、对象模型服务或其他系统或服务的服务。

Description

用于创建应用程序的系统及方法
技术领域
本发明涉及软件和软件开发。更特别地,本发明涉及有助于应用程序和计算机硬件使用软件平台的编程接口。
所附光盘简要说明
此说明书所附的三张光盘存储代码名称为“Longhorn”的
Figure C20041007850400081
操作系统的软件开发工具(SDK)。SDK包含代码名称为“Longhorn”的
Figure C20041007850400083
Figure C20041007850400084
操作系统的文档。三张光盘的重复拷贝也附在本说明书之后。
三张光盘中的第一张光盘(3张光盘中的CD 1)包含2003年10月22日创建的名为“lhsdk”的文件夹。此文件夹大小为586MB,包含9,692个子文件夹,且包含44,292个子文件。三张光盘中的第二张光盘(3张光盘中的CD 2)包含2003年10月22日创建的名为“ns”的文件夹。此文件夹大小为605MB,包含12,628个子文件夹,且包含44,934个子文件。三张光盘中的第三张光盘(3张光盘中的CD 3)包含2003年10月22日创建的名为“ns”的文件夹。此文件夹大小为575MB,包含9,881个子文件夹,且包含43,630个子文件。三张光盘的每一张上的文件均可以在基于
Figure C20041007850400085
的计算设备(如,IBM-PC或其等价)上执行,这些计算设备执行
Figure C20041007850400086
品牌的操作系统(如
Figure C20041007850400087
NT、
Figure C20041007850400088
98、
Figure C20041007850400089
2000、
Figure C200410078504000810
XP等等)。包含三张光盘的每一张上的文件加入这里作为参考。
三张光盘的每一张都是CD-R,且符合ISO 9660标准。三张光盘的每一张的内容均符合美国信息交换标准码(ASCII)。
发明背景
很早以前起,计算机软件就被归类为“操作系统”软件或“应用”软件。广义上来说,应用软件是用于为计算机用户执行特定任务(如解数学方程或支持字处理)的软件。操作系统是管理和控制计算机硬件的软件。操作系统的的目标是使得计算机资源对应用程序员可用而同时隐去了实际控制硬件所需的复杂性。
操作系统通过总称为应用编程接口或API的函数使得资源可用。术语API也被用于指这些的函数中的一个。这些函数通常根据它们对应用程序员提供何种资源或服务来分组。应用软件通过调用单独的API函数来请求资源。API函数也用作将操作系统提供的消息和信息转发回应用软件的方法。
除了硬件的改变,驱动操作系统软件进化的另一个因素是简化和加速应用软件开发的需要。应用软件开发是令人畏惧的任务,有时需要几年的开发者时间来创建有上百万行代码的复杂程序。对流行的操作系统,如各种版本的Microsoft
Figure C20041007850400091
操作系统,应用软件开发者每年编写成千上万个使用此操作系统的不同应用软件。需要严谨的可用操作系统基础来支持如此多的各种应用开发者。
通常,通过使操作系统更加复杂可以使应用软件的开发变得更简单。即,如果一个函数对许多不同的应用程序有用,则最好是写一次并将其包括在操作系统中,而不是要求很多的软件开发者多次编写该函数以包括在很多不同的应用中。以此方式,如果操作系统广泛支持很多应用软件所需的共同功能,则可以在应用软件开发成本和时间上实现显著的节省。
无论操作系统和应用软件之间的界线画在何处,很清楚的是对有用的操作系统来说,在操作系统和计算机硬件及应用软件之间的API和操作系统自身有效的内部操作同等重要。
在过去几年中,因特网(总的来说,网络技术)的广泛采用已经改变了计算机软件开发者的眼界。过去,软件开发者着眼于单站点软件应用,以用于独立的桌面计算机,或通过局域网(LAN)连接到有限数量的其他计算机的基于LAN的计算机。这样的软件应用通常被称为“紧缩包(shrink wrapped)”的产品,因为这样的软件是在紧缩包的包装中营销和销售的。应用软件使用定义良好的API来访问计算机的底层操作系统。
随着因特网的发展并得到了广泛的接受,业界开始认识到在万维网(或简单地“Web”)的各个网站上驻留应用软件的能力。在联网的世界中,来自任何地方的客户机可以向在各个地点驻留的基于服务器的应用提交请求,并在几分之一秒的时间内接收返回的响应。然而,这些Web应用软件通常是使用起初为独立的计算设备或本地联网的计算机开发的同一操作系统平台开发的。不幸的是,在某些情况下,这些应用不能充分迁移到分布式计算领域。底层平台就不是用支持无限数量互连计算机的思想来构建的。
为了适应由因特网带来的到分布式计算环境转变,微软公司开发了称为“.NET”框架(读做“点Net”)的网络软件平台。
Figure C20041007850400101
.NET是用于连接人、信息、系统和设备的软件。该平台允许开发者创建在因特网上执行的Web服务。用于微软.NETTM框架的一组API函数伴随着这样的动态转变。
随着.NETTM框架的使用变得越来越常见,已建立了提高此平台效率和/或性能的多种方法。发明人已开发出一组独特的API函数来应对提高的效率和/或性能。
发明概要
一种编程接口提供生成应用软件、文档、媒体表示和其他内容的函数。这些函数允许开发者获取来自操作系统、对象模型服务或其他系统或服务的服务。在一个实施例中,这些函数允许开发者生成图形用户接口。
附图说明
相同的编号在整个附图中被用来引用类似的部件。
图1展示网络架构,在其中客户机使用常规协议通过因特网访问Web服务;
图2是用于网络平台的软件架构的方框图,它包括应用编程接口(API);
图3是由API及各种API函数的功能分类支持的表示子系统的方框图;
图4是可以执行所述软件架构的全部或部分的示范计算机的方框图;及
图5、6、7、8、9、10、11、12、13、14、15和16展示编程接口的各种实施例。
详细说明
本发明涉及用于开发者可以在其上构建Web应用和服务的网络平台的应用编程接口(API)。更特别地,所描述的示范API是对使用网络平台的操作系统,如微软公司创建的.NETTM框架的操作系统。.NETTM框架是在分布式计算环境中实现的Web服务和Web应用软件的软件平台。它使用开放的通讯标准,在合作执行特殊任务的松散耦合的Web服务之间通讯,代表下一代的因特网计算。
在上述实施例中,网络平台使用XML(可扩展标记语言),一种用于描述数据的开放标准。XML由万维网联盟(W3C)管理。XML被用于定义网页和企业对企业文档上的数据元素。XML使用类似于HTML的标签结构,然而,HTML定义如何显示元素,而XML定义那些元素包含什么。HTML使用预定义的标签,而XML允许标签由页面的开发者来定义。这样,实际上可以识别任何数据项,允许Web页面起着类似数据库记录的作用。通过使用XML和其他开放协议,如简单对象访问协议(SOAP),网络平台允许集成可以根据用户需要定制的各种服务。虽然,结合XML和其他开放标准来说明在此所述的实施例,这对本发明的操作不是必须的。
如在此所用,短语应用编程接口或API包括使用方法或函数调用及远程调用(如,代理、占位程序(stub)关系)和SOAP/XML调用的传统接口。
应理解,在下面的一些名字空间说明中,特定类、接口、枚举和代理的说明是空的。这些类、接口、枚举和代理更完全的说明可以在上面引用的存储SDK的光盘的主题中找到。
示范网络环境
图1展示网络环境100,在其中可以实现网络平台,如.NETTM框架。网络环境100包括代表性的Web服务102(1),...,102(N),它们提供可以通过网络104(如,因特网)访问的服务。Web服务(总地使用编号102来引用)是可编程的应用组件,它们可以重用并通过网络104以程序方式交互,这种交互通常通过工业标准的Web协议进行,如XML、SOAP、WAP(无线应用协议)、HTTP(超文本传输协议)和SMTP(简单邮件传输协议),虽然也可以使用通过网络和Web服务交互的其他方法,如远程过程调用(RPC)或对象代理类型技术。Web服务可以是自我描述的并通常根据消息的格式和顺序来定义。
Web服务102可以由其他服务(如通讯链接106所示)或软件应用,如Web应用110(如通讯链接112和114所示)直接访问。所示的每个Web服务102包括一个或多个服务器,这些服务器执行处理对特殊服务的请求的软件。这样的服务通常维护存储返回给请求者的信息的数据库。Web服务可以配置成执行各种不同服务中的任何一种。Web服务的例子包括登录校验、通知、数据库存储、股票报价、位置目录、映射、音乐、电子钱包、日历/时间表、列表、电话收听、新闻和信息、游戏、票务等等。Web服务可以互相和与其他应用合并来构建智能的交互操作。
网络环境100也包括使用Web服务102(如通讯链接122所示)和/或Web应用110(如通讯链接124、126和128所示)的代表性的客户机设备120(1)、120(2)、120(3)、120(4)、...、120(M)。客户机也可以使用标准协议互相通讯,如客户机120(3)和120(4)之间的示范XML链接130所示。
客户机设备(总地使用编号120来引用)可以用很多不同的方法来实现。可能的客户机实现的例子包括,而不限制,便携式计算机、固定计算机、输入板PC、电视机/机顶盒、无线通讯设备、个人数字助理、游戏终端、打印机、复印机和其他智能设备。
Web应用110是一应用程序它设计成在网络平台上运行,并可以在对来自客户机120的请求进行处理和服务时使用Web服务102。Web应用110由在编程框架132之上运行的一个或多个软件应用130组成,编程框架132在一个或多个服务器或其他计算机系统上执行。注意,Web应用10的一部分可以实际上驻留一个或多个客户机120上。另外,Web应用110可以和客户机120上的其他软件协调来实际完成它的任务。
编程框架132是支持由应用开发者开发的应用软件和服务的结构。它通过支持多种语言,允许多种语言的开发和无缝集成。它支持开放的标准,如SOAP,并封装底层的操作系统和对象模型服务。框架对多种编程语言提供健壮和安全的执行环境并提供安全、集成的类库。
框架132是包含应用编程接口(API)层142、通用语言运行库(CLR)层144和操作系统/服务层146的多层架构。这种分层的架构允许对各层进行更新和修改而不影响框架的其他部分。通用语言规范(CLS)140允许各种语言的设计者编写可以访问底层库功能的代码。规范140起语言设计者和库设计者之间的合约的作用,可用于提升语言互操作性。通过遵从CLS,以一种语言编写的库可以由以其他语言编写的代码模块直接访问,从而获得以一种语言编写的代码模块和以另一种语言编写的代码模块之间的无缝集成。CLS的一个详细实施例在由参与者在ECMA TC39/TG3中创建的ECMA标准中说明。读者请参考ECMA在www.ecma.ch的网站。
API层142表示应用130可以调用它们以访问层146提供的资源和服务的函数组。通过对网络平台展现API函数,应用软件开发者可以创建用于分布式计算系统的Web应用软件以充分利用网络资源和其他Web服务,而无需理解实际上如何操作或提供那些网络资源的复杂内部机制。再者,Web应用软件可以用任何数量的编程语言来编写,并转换为由通用语言运行库144支持并作为通用语言规范140的部分包括的中间语言。以此方式,API层142可以为广泛的不同应用提供各种方法。
另外,框架132可以配置为支持由通过容纳框架的服务器134远程执行的远程应用软件进行的API调用。代表性应用软件148(1)和148(2)各自驻留在客户机120(3)和120(M)上,它们可以通过网络104直接或间接调用API层来使用API函数。
框架也可以在客户机上实现。客户机120(3)表示其中框架150在客户机上实现的情况。此框架可以等同于基于服务器的框架132或根据客户机的目的进行修改。另外,基于客户机的框架可以在客户机为有限功能或专用功能的设备,如手机、个人数字助理、手持计算机或其他通讯/计算设备的情况下进行精简。
开发者的编程框架
图2更详细地展示编程框架132。通用语言规范(CLS)层140支持以各种语言130(1)、130(2)、130(3)、130(4)、...、130(K)编写的应用软件。这样的应用语言包括Visual Basic、C++、C#、COBOL、Jscript、Perl、Eiffel、Python等等。通用语言规范140规定特性的子集或有关特性的规则,若遵从这些规则,则允许各种语言进行通讯。例如,某些语言不支持可能由通用语言运行库144支持的特定类型(如,“int*”类型)。在此情况,通用语言规范140不包括该类型。另一方面,由所有或大多数语言支持的类型(如“int[]”类型)被包括在通用语言规范140中,从而库开发者可以不必使用它而确保那些语言可以处理它。此通讯能力带来以一种语言编写的代码模块和以另一种语言编写的代码模块之间的无缝集成。由于不同的语言特别适合于各种特殊的任务,语言之间的无缝集成允许开发者对特殊的代码模块选择特殊的语言,且以不同语言编写的模块能够使用该代码模块。通用语言运行库144通过跨越语言继承支持无缝的多语言开发,并对多种编程语言提供健壮和安全的执行环境。关于通用语言规范140和通用语言运行库144的更多信息,读者请参考一起待批准的2000年6月21日提交、标题为“编译多种语言的方法和系统”的专利申请(序列号09/598,105)和2000年7月10日提交、标题为“统一数据类型系统和方法”的申请(序列号09/613,289),将它们包含在此作为参考。
框架132封装操作系统146(1)(如
Figure C20041007850400141
品牌的操作系统)和对象模型服务146(2)(如组件对象模型(COM)或分布式COM)。操作系统146(1)提供常规函数,如文件管理、通知、事件处理、用户接口(如,窗口、菜单、对话框等等)、安全、身份验证、校验、进程和线程、内存管理等等。对象模型服务146(2)提供连接其他对象的接口来执行各种任务。对API层142做出的调用被传递给通用语言运行库层144,以由操作系统146(1)和/或对象模型服务146(2)在本地执行。
API 142将API函数分组到多个名字空间中。名字空间本质上定义类、接口、代理、枚举和结构的集合,它们统称为“类型”并提供相关功能的特定集合。类表示管理下的堆分配的数据,它具有引用赋值语义。代理是面向对象的函数指针。枚举是特殊类型的表示命名常量的值类型。结构表示静态分配的数据,它具有值赋值语义。接口定义其他类型可以实现的合约。
通过使用名字空间,设计者可以将一组类型组织成分层的名字空间。设计者能够从该组类型创建多个组,每组至少包括一个逻辑上显现出相关的功能的类型。在示范实施例中,API 142组织为包括三个根名字空间。应注意,虽然在图2中只展示了三个根名字空间,也可以在API 142中包括另外的根名字空间。API 142中展示的三个根名字空间是:用于表示子系统的第一个名字空间200(包括用于用户接口外壳的名字空间202),用于Web服务的第二个名字空间204,及用于文件系统的第三个名字空间206。每个组可以分配一个名字。例如,表示子系统名字空间200中的类型可以分配名字“Windows”,而文件系统名字空间206中的类型可以分配名字“Storage”。命名的组可以在用于系统层API的单个“全局根”名字空间,如总系统名字空间下面进行组织。通过选择并加上顶层标识符前缀,每个组中的类型可以容易地通过层次名字来引用,层次名字包含所选择的加在包含该类型的组名字前面的顶层标识符前缀。例如,文件系统名字空间206内的类型可以使用层次名字“System.Storage”来引用。以此方式,各个名字空间200、204和206成为系统名字空间的主要分支,并可以带有这样的标志,其中各个名字空间用命名符加上前缀,如前缀“System.”。
表示子系统名字空间200涉及编程和内容开发。它提供用于处理应用软件、文档、媒体表示和其他内容的产生的类型。例如,表示子系统名字空间200提供允许开发者获取来自操作系统146(1)和/或对象模型服务146(2)的服务的编程模型。
外壳名字空间202涉及用户接口功能。它提供允许开发者在他们的应用中嵌入用户接口功能的类型,并进一步允许开发者扩展用户接口功能。
Web服务名字空间204涉及支持创建各种应用的架构,这些应用包括如象在内联网上的两个伙伴之间操作的聊天应用那样简单的应用,和/或象用于成百万用户的可伸缩Web服务那样复杂的应用。由于只需要使用适合于特殊解决方案复杂度的那些部分,上述架构最好是高度可变。该架构提供构建各种规模和复杂度的基于消息的应用的基础。该架构或框架提供用于基本消息、安全消息、可靠消息和事务消息的API。在下述实施例中,将相关API以精心设计来平衡实用性、可用性、可扩展性和版本可管理性的方式分解为名字空间的层次。
文件系统名字空间206涉及存储。它提供用于信息存储和检索的类型。
除了框架132之外,提供编程工具210来辅助开发者构建Web服务和/或应用。编程工具210的一个例子是Visual StudioTM,它是由微软公司提供一种多语言编程工具套件。
根API名字空间
图3更详细地展示表示子系统200的一部分。在一个实施例中,根据在其中周期地连接名字字符串的层次命名协定来识别名字空间。例如,通过根名字“System.Windows”来识别表示子系统名字空间。在“System.Windows”名字空间内有另一个用于各种控件的名字空间,称为“System.Windows.Controls”,它进一步标识称为“System.Windows.Controls.Primitives”的另一个用于原语的名字空间(未标出)。记住了这样的命名协定,下面提供API 142所选择的名字空间的概要,虽然使用其他命名协定能产生同等效果。
如图3所示,表示子系统200包括多个名字空间。图3所示的名字空间所表示的是表示子系统200的特殊实施例。表示子系统200的其他实施例可以包括一个或多个另外的名字空间或可以忽略图3所示名字空间中的一个或多个。
表示子系统200是用于API 142的很多表示功能的根名字空间。控件名字空间310包括用来构建信息显示的控件,如用户界面,及允许用户与应用交互的类。例子控件包括在显示屏上创建按钮的“Button”、在显示屏上生成单选按钮的“RadioButton”,在显示屏上创建菜单的“Menu”、在显示屏上创建工具栏的“ToolBar”、在显示屏上生成图形的“Image”及创建信息的层次视图的“TreeView”。
通过嵌套和摆放多个元素可以创建某些的控件。控件具有隐藏用于创建控件的元素的逻辑模型,从而简化编程模型。可以由开发者或用户(如,通过客户在用户界面按钮的外观和行为)设置控件的样式和主题。某些控件具有允许个人调整单个控件的样式的可定位组件。另外,由应用开发者和组件开发者可以生成控件的子类并扩展控制。使用矢量图来呈现控件使得可以重新设置它们的大小来适应特殊接口或其他显示的要求。控件能够使用动画来增强例如用户接口的交互感觉并显示动作和反应。
控件名字空间
控件名字空间310包括一个或多个面板,面板是测量和安排其子控件(如,嵌套的元素)的控件。例如,“DockPanel”面板通过将每个子控件泊放到显示的上边、左边、下边或右边,并用其他数据填充余下的空间来安排子控件。例如,特殊的面板可以将菜单和工具栏泊放到显示的上边、状态栏泊放到显示的下边、文件夹列表泊放到显示的左边,并用消息列表填充余下的空间。
上面提到,System.Windows.Controls.Primitives是包括多个控件的名字空间,这些控件是通常由在System.Windows.Controls名字空间中的控件的开发者以及由创建他们自己的控件的开发者使用的组件。这些组件的例子包括“Thumb和RepeatButton”。另一个组件“ScrollBar”是使用四个重复按钮(一个用于“向上一行”、一个用于“向下一行”、一个用于“向上翻页”,一个用于“向下翻页”)和“Thumb”来创建的,用于拖动当前视图到文档中另一位置的。在另一个例子中,“ScrollViewer”是使用两个“ScrollBars”和一个“ScrollArea”创建以提供可滚动区域的控件。
下面的列表包括由System.Windows.Controls名字空间显现的例子类。例如,这些类允许用户和应用通过各种输入和输出能力以及附加的显示能力进行交互。
●AccessKey-AccessKey是包装一个字符的FrameworkElement元素,表示将把表示字符的键盘记号装饰作为键盘助记符来接收。缺省的键盘记号装饰为下划线。
●Audio-音频元素。
●Border-在另一个元素周围画出边界、背景或两者。
●Button-表示内在地响应点击(Click)事件的标准按钮组件。
●Canvas-定义在其中用户可以通过相对于Canvas区域的坐标明确地定位子元素的区域。
●CheckBox-使用CheckBox向用户给出如真/假这样的选项。CheckBox允许用户从选项列表中进行选择。CheckBox控件使用户选择选项的组合。
●CheckedChangedEvengArgs-这个类包含有关CheckedChangedEvent事件的附加信息。
●CheckStateChangedEventArgs-这个类包含有关CheckStateChangedEvent事件的附加信息。
●ClickEventArgs-包含有关Click事件的信息。
●ColumnStyle-表示可改变的ColumnStyle对象。
●ColumnStyles-可改变模式的IList对象,它为可改变的(Changeable)元素的集合。
●ComboBox-ComboBox控件。
●ComboBoxItem-实现可在ComboBox内可选的项目的控件。
●ContactPickerDialog-允许用户选择一个或多个联系。
●ContactPropertyRequest-允许应用通过ContactPickerDialog请求有关联系属性的信息。此类不能被继承。
●ContactPropertyRequestCollection-表示ContactPropertyRequest对象的集合.
●ContactSelection-有关来自代码名称为“WinFS”的
Figure C20041007850400171
Figure C20041007850400172
文件系统或MicrosoftActive(活动目
Figure C20041007850400174
)的所选择的联系的信息。
●ContactSelectionCollection-表示ContactSelection对象的集合。
●ContactTextBox-支持选取联系或联系的属性的编辑控件。
●ContactTextBoxSelectionChangedEventArgs-ContactTextBoxSelectionChanged事件的参数。
●ContactTextBoxTextChangedEventArgs-ContactTextBoxTextChanged事件的参数。
●ContactTextBoxTextResolvedEventArgs-TextResotvedToContact事件的参数。
●ContentChangedEventArgs-ContentChangedEvent的事件参数。
●ContentControl-具有单条内容的所有控件的基类。
●ContentPresenter-当添加内容时,在内容控件的样式之内使用ContentPresenter来表示在控件的可视树中的位置(色彩模板)。
●ContextMenu-定义菜单的控件,菜单中包含用户将引用的选择。
●ContextMenuEventArgs-在ContextMenuEvent事件发生时发送的数据。
●Control-表示对所有用户交互元素的基类。此类向其子类提供基本的属性集合。
●Decorator-将效果应用到单个子元素之上或应用到单个子元素周围的元素(如边界Border)的基类。
●DockPanel-定义用户在其中可以彼此水平或垂直地排放子元素的区域。
●DragDeltaEventArgs-此类包含有关DragDeltaEvent事件的附加信息。
●FixedPanel-FixedPanel是在固定格式文档中使用以便包含用于分页的固定的页根元素。FixedPanel一次显示分页内容的一页,或将其作为可滚动的页堆栈。
●FlowPanel-FlowPanel用于划分、缩进和对齐超出单行长度的内容。FlowPanel提供分行和对齐属性,它能在容件的内容流,例如文本,可能超出单行长度时使用。
●Frame-可以加载另一个标记树内容的区域。
●Generator-Generator是为ItemsControls生成UI的对象,它在GeneratorFactory的监控下工作。
●GeneratorFactory-GeneratorFactory负责为ItemsControl生成UI。它维护控件的ItemsCollection(扁平视图)中的项与对应的UIElement之间的关联。该控制的项一容件能向Factory请求实际产生UI的的生成器(Generator)。
●GridPanel-定义包含列和行的网格区域。
●HeaderItemsControl-包含多个项且具有标题的所有控件的基类。
●HorizontalScrollBar-水平滚动条(SchrollBar)类。
●HorizontalSlider-水平滑动器(Slider)类。
●HyperLink-HyperLink类实现浏览控制。缺省的表示器为TextPresenter。
●Image-提供在文档或应用中包含图像的简单方法。
●IncludeContactEventArgs-传递给ContactPickerDialog.IncludeContact事件的处理程序的参数。
●ItemCollection-维护控件内离散的项的集合。提供支持改变集合内容及获取有关内容的数据的方法和属性。
●ItemsChangedEventArgs-由GeneratorFactory触发ItemsChanged事件以通知布局组件,该项集合已被更改。
●ItemsControl-有多个子控件的所有控件的基类。
●ItemsView-ItemsView提供ItemCollection的平视图。
●KeyboardNavigation-KeyboardNavigation类提供在所关注的控件之间进行逻辑(Tab键)和方向性(箭头)浏览的方法。
●ListBox-实现可选择的项列表的控件。
●ListItem-实现ListBox内可选择的项的控件。
●Menu-定义供用户调用的选项的菜单的控件。
●MenuItem-Menu的子项。可以选择MenuItem来调用命令。MenuItem可以为分隔符。MenuItem可以为子菜单的标题。可以选定或不选定MenuItem。
●PageViewer-表示包含分页控件、工具栏和页面栏控件的文档查看复合控件。
●PaginationCompleteEventArgs-PaginationCompleteEvent的事件参数。
●PaginationProgressEventArgs-PaginationProgressEvent的事件参数。
●Pane-提供以标记语言定义窗口属性(如,“XAML”)而不打开新窗口的方法。
●Panel-对所有的Panel元素提供基类。为了实例化Panel元素,使用导出的具体类。
●RadioButton-RadioButton实现有两种状态(真或假)的选项按钮。
●RadioButtonList-该控件用作组合RadioButton的控件并且是处理RadioButton互斥性的控件。该RadioBnttonListSelector继承。该RadioButtonList本质上是SingleSelectionSelector,且Selection的概念(来自Selecton)是断切它不组合的RodioBntton的Check的属性
●RowStyle-可改变的模式Changeable元素。
●RowStyles-可改变的模式IList对象,它是Changeable元素的集合。
●ScrollChangeEventArgs-ScrollChangeEventArgs描述以滚动状态的变化。
●ScrollViewer-
●SelectedItemsCollection-对Selector中所选择的项的容件。
●SelectionChangedEventArgs-对选择改变事件处理程序的输入。
●SimpleText-SimpleText是轻量级的、多行的、单一格式文本元素,用在用户接口(UI)情况中。SimpleText显现几个和Text相同的格式化属性,且通常可以用于以降低通用性为低价来换取性能提高。
●StyleSelector-StyleSelector允许应用软件编写者提供客户风格的式选择逻辑。例如,当类Bug作为内容时,对Pri1错误使用特殊样式而对Pri2错误使用不同的样式。应用软件编写者可以覆盖导出的选择器类中的SelectStyle方法,并将此类的实例赋值到ContentPresenter类上的StyleSelector属性。
●Text-表示支持呈现多种格式文本的文本控件。Text最好在应用UI内使用;更高级的文本情况得益于TextPanel的附加特性集合。在多数需要相对简单的文本支持的情况下,由于它轻量级的本质和特性的范围,Text是首选的元素。
●TextBox-表示提供接受文本输入的可编辑区域的控件。
●TextChangedEventArgs-TextChangedEventArgs表示与由TextRange.SetText()触发的事件相关的RoutedEventArgs的一类型。
●TextPanel-格式化文本、改变文本大小并画出文本。TextPanel支持多行文本和多行文本格式。
●ToolTip-当用户悬停在控件上方时显示信息的控件。
●ToolTipEventArgs-ToolTipEvent发生时发送的数据。
●TransformDecorator-TransformDecorator包含子控件并对其应用指定的转换。TransformDecorator实现在其本地(转换前)坐标中测量和安排子控件的逻辑,以使得在转换之后子控件紧密适合装饰器的空间并使用最大的区域。因而该子控制不需要知道已对它应用转换的知识。
●UIElementCollection-UIElementCollection是UIElement的有序集合。
●ValueChangedEventArgs-ValueChangedEventArgs类包含有关ValueChangedEvent事件的附加信息。
●VerticalScrollBar-垂直滚动条类。
●VerticalSlider-垂直滑动器类。
●Video-在当前的用户坐标系统内的指定矩形中播放视频流或音频流文件。
●VisibleChangedEventArgs-VisibleChangedEventArgs类包含有关VisibleChangedEvent事件的附加信息。
System.Windows.Controls名字空间也包含各种枚举。下面的列表包含和
System.Windows.Controls名字空间关联的例子枚举。
●CharacterCase-当键入文本时指定TextBox控件中字符的大小写。
●CheckState-指定如复选框这样可以选定、不选定或设置为中间状态的控件的状态。
●ClickMode-指定何时触发Click事件。
●ContactControlPropertyPosition-控制联系的属性的位置和显示。
●ContactPickerDialogLayout-指定ContactPickerDialog如何显示选择的属性。
●ContactPropertyCategory-在属性有用户可以选择的多个值的情况下,指定将哪个值作为缺省值。例如,当从ContactPickDialog请求电话号码,且用户选择工作及家庭电话号码作为联系时,若指定“Work-工作”作为优先类别,工作电话号码作为缺省选择出现。用户随后能使用UI另外选择家庭电话号码。
●ContactPropertyType-指定ContactPickerDialog会向用户请求的联系的属性。
●ContactType-指定哪个联系的类型在ContactPickDialog吕显示。
●Direction-此枚举由GeneratorFactory和Generator使用来指定生成器产生UI的方向。
●Dock-指定子元素在DockPanel内的泊放位置。
●GeneratorStatus-此枚举由GeneratorFactory使用以表示其状态。
●KeyNavigationMode-TabNavigation属性的类型指定容器在发生Tab导航时如何移动着眼点。
●MenuItemBehavior-定义MenuItem可以具有的不同行为。
●MenuItemType-定义MenuItem的不同放置类型。
●Orientation-滑动器方向类型。
●PageViewerFit-选择页如何拟合到PageViewer的客户区域中。
●PageViewerMode-在下拉模式列表中选择当前反映的PageViewer模式。
●ScrollerVisibility-ScrollerVisibility定义滚动条的可视行为。
●SelectionMode-指定ListBox的选择行为。
“Position”是和System.Windows.Controls名字空间关联的例子结构。Generator的用户使用此结构描述位置。例如,为了从项列表的头正向开始生成,指定位置(-1,0)和方向Forward。为了从列表的末端反向开始生成,指定位置(-1,0)和方向Backwark)。为了在有下标k的元素之后生成项,指定位置(k,0)和方向Forward。
下面的列表包含和System.Windows.Controls名字空间关联的例子代理。
●CheckedChangedEventHandler-此代理由CheckedChangedEvent事件的处理程序使用。
●CheckStateChangedEventHandler-此代理由CheckStateChangedEvent事件的处理程序使用。
●ClickEventHandler-表示处理Click事件的方法。
●ContactTextBoxSelectionChangedEventHandler-ContactTextBoxSelectionChanged事件的代理处理程序。
●ContactTextBoxTextChangedEventHandler-ContactTextBoxTextChanged事件的代理处理程序。
●ContactTextBoxTextResolvedEventHandler-TextResolvedToContact事件的代理处理程序。
●ContentChangedDelegate-ContentChangedEvent事件的代理。
●ContextMenuEventHandler-用于处理ContextMenuEvent事件的回调用类型。
●DragDeltaEventHandler-此代理由DragDeltaEvent事件的处理程序使用。
●IncludeContactEventHandler-ContactPickerDialog.IncludeContact事件的处理程序。
●ItemsChangedEventHandler-由接收ItemsChangedEventArgs的处理程序使用的代理。
●OpenedEventHandler-ContactPickerDialog.Opened事件的处理程序。
●PaginationCompleteDelegate-PaginationCompleteEvent事件的代理。
●PaginationProgressDelegate-PaginationProgressEvent事件的代理。
●ScrollChangeEventHandler-此代理由ScrollChangeEvent事件的处理程序使用。
●SelectionChangedEventHandler-用于处理选择改变事件的代理类型。
●TextChangedEventHandler-由接收TextChangedEventArgs的处理程序使用的代理。
●ToolTipEventHandler-用于处理ToolTipEvent事件的回调用类型。
●ValueChangedEventHandler-此代理由ValueChangedEvent事件的处理程序使用。
●VisibleChangedEventHandler-此代理由VisibleChangedEvent事件的处理程序使用。
另一个名字空间,System.Windows.Controls.Atoms,是System.Windows.Controls名字空间的子名字空间。System.Windows.Controls.Atoms包括关联的控件、事件参数和事件处理程序。下述列表包含和System.Windows.Controls.Atoms名字空间关联的例子类。
●PageBar-表示可滚动的分页控件。
●PageElement-呈现分页内容的特定页。被呈现的页由PageSource属性指定。
●PageHoveredEventArgs-PageHoveredEventArgs提供有关鼠标指针悬停在何处的信息。
●PageScrolledEventArgs-PageScrolledEventArgs包含涉及PageScrolled事件的信息。
●PageSelectedEventArgs-当选择新的行/列范围时触发PageSelectedEvent事件。
●PageSelector-PageSelector:允许用户选择将被显示的页的行/列范围。
●PageSource-识别将被分页的内容来源。它也提供用于格式化分页内容的属性和方法。
下述列表包含和System.Windows.Controls.Atoms名字空间关联的例子代理。
●PageHoveredEventHandler-此代理由PageHoveredEvent事件的处理程序使用。
●PageScrolledEventHandler-此代理由事件的处理程序使用。
●PageSelectedEventHandler-此代理由PageSelectedEvent事件的处理程序使用。
System.Windows.Controls.Primitives名字空间是System.Windows.Controls名字空间的另一个子名字空间。如上所述,Primitives子名字空间包括由其他更复杂的控件用作原语的控件。下述列表包括和System.Windows.Controls.Primitives名字空间关联的例子类。
●ButtonBase-当在导出的类中覆盖时,定义相关的事件和属性,并提供相关输入事件的处理程序。
●Popup-创建包含内容的弹出窗口的控件。
●RangeBase-表示有特定范围的元素的基类。这样的元素的例子包括滚动条和进度条(progress bar)。这个类定义相关的事件和属性,并提供事件的处理程序。
●RepeatButton-RepeatButton控件在Click事件发生时添加重复语义。
●ScrollArea-ScrollArea是用于滚动的有效元素。它包含剪辑的内容并提供属性来展现内容的偏移量和范围。它也提供缺省的输入处理,以使得可以用程序或通过键盘或鼠标滚轮来驱动滚动。
●ScrollBar-ScrollBar类。
●Selector-从它们的子元素中选取项的控件的基类。
●Slider-Slider类。
●Thumb-拇指控件支持滚动条的基本拖动功能和窗口的重设大小。
“IEnsureVisible”是和System.Windows.Controls.Primitives名字空间关联的例子接口。IEnsureVisible在可视元素上实现以将子可视元素滚动/移动到视图中。
下面的列表包含和System.Windows.Controls.Primitives名字空间关联的例子枚举。
●ArrowButtonStates-
●CloseModeType-描述弹出窗口如何响应各种鼠标事件。
●Part-Part枚举用于表示构成滚动条的控件的语义用途。
●PartStates-ScrollBar的部件状态。
●PlacementType-描述应在屏幕上的何处放置弹出窗口。
●SizeBoxStates-
文档名字空间
文档名字空间312是用于创建具有丰富格式和丰富语义的文档的语义和格式元素的集合。在一个实施例中,“元素”是主要结合元素的类层次结构(称为“树”)使用的类。这些元素可以是交互的(如,通过键盘、鼠标或其他输入设备接收用户输入),可以呈现图像或对象,并可以辅助安排其他元素。例子元素包括实现通用块的“Block”元素、表示包括表主体内容的“Body”元素、包含表内的表格数据的“Cell元素”、表示包含在表头中的内容的“Header”元素,及用于将内容分成多个页面的“PageBreak”元素。
下面的列表包含由System.Windows.Documents名字空间展现的例子类。
●AdaptiveMetricsContext-AdaptiveMetricsContext提供适应性流格式文档的根元素。一旦在AdaptiveMetricsContext元素中封装了子面板,则该面板的内容由ReadingMetricsEngine(读取度量引擎RME)处理。子面板的大小被用来计算任何列的数量和大小及最佳字体大小和行高。
●Block-实现不包括缺省呈现行为的通用块元素。
●BlockElement-实现所有Block元素的基类。
●Body-表示构成Table元素主体的内容。
●Bold-实现从Inline导出的Bold元素。
●BreakRecord-存储跨分页符继续格式化分页的内容所需的信息。从这个类继承以提供分页支持。该类为抽象类。
●Cell-Cell包含Table内的表格数据。Cell元素包含在Row中。
●CellCollection-表格单元的有序集合。
●Column-Column元素被用于分配GridPanel或Table的内容。
●ColumnCollection-ColumnCollection是Column的有序集合。
●ColumnResult-表示列的视图相关信息。
●ContainerParagraphResult-提供对Paragraph对象的计算出的布局参数的访问,Paragraph对象仅包含其他Paragraph对象。
●ContentPosition-表示内容在段落中的位置。从这个类继承来描述相关内容的位置。这是一个抽象类。
●Document-Document类的的目的是分离文档内容和它周围的UI“色彩”。“分离”指用户可以制作文档而无需考虑(且不会连累)它的UI。Document类包含文档内容,通常是TextPanel或FixedPanel及其子元素。可视元素树(缺省为PageViewer)通过WPP控件样式机制和此元素关联。
●DocumentPage-表示和经受分页的文档的页关联的控件的布局信息。从此类继承进行实现来描述这些控件的布局信息。这是一个抽象类。
●DocumentPageParagraphResult-提供对计算出的受分页影响的对象的布局参数的访问。
●FindEngine-搜索算法的基类。
●FindEngineFactory-搜索算法工厂。
●FixedPage-提供对固定格式布局文档中的内容的单个页的访问。
●Footer-表示构成Table元素页脚的内容。
●Header-表示构成Table元素表头的内容。
●Heading-实现将文本作为标题呈现的块级别元素。
●HyphenationDictionary-HyphenationDictionary表示用于在应用中提供连字支持的字典。它可以包括内部字典和对外部字典的引用两者。内部字典有较高的优先级并在外部字典的条目之前应用。
●Hyphenator-Hyphenator对象维护对HyphenationDictionary内的连字数据的引用同时也执行连字操作。
●Inline-实现不招致任何缺省呈现行为的通用Inline元素。
●InlineElement-实现作为所有内部元素基类的通用内部元素。
●Italic-实现从Inline导出的Italic元素。
●LineBreak-表示强制换行的标记元素。
●LineResult-提供对计算出的一行文本行信息的访问。
●List-实现List元素。List是设计为使用如黑点或编号这样的记号格式化的块级别元素。
●ListElementItem-实现ListElementItem,它支持如黑点或编号这样的记号。
●Note-实现Note元素,它类似于HTML中的注释元素。
●PageBreak-表示用来将内容划分成各页的标记元素。
●PageDescriptor-实现PageDescriptor,它存储创建分页布局所需的信息。
●Paragraph-实现用于在段落中呈现文本的块级别元素。呈现行为和HTML段落元素类似。
●ParagraphResult-提供对计算出的Paragraph对象布局参数的访问。
●Row-在GridPanel或Table元素内定义行。
●RowCollection-RowCollection表示Row的有序集合。
●RowGroup-指定Table或GridPanel中一组行的缺省属性。
●Section-实现通用容件元素。呈现行为和HTML中的DIV元素类似。
●SmallCaps-实现内部SmallCaps元素。SmallCaps是作为字符的小体大写字母版本呈现以用于(如在标题内)强调的印刷体。
●Subscript-表示内部Subscript元素。Subscript字符被写在在其他字符的正下方、左下方、或右下方。
●Superscript-表示内部Superscript元素。Superscript字符通常是字母或数字并在其他字符的正上方、左上方、或右上方呈现。
●Table-Table被用于使用标记语言(如,“XAML”)以表格形式显示复杂的数据。
●TextArray-用于文本访问和处理的基础API。
●TextChangedEventArgs-TextChangedEventArgs定义当TextArray改变时发送的事件参数。
●TextElement-TextElement对TextTree提供TextRange工具。它是不可变的、连续的有固定端点的TextRange。它提供ContentElement输入、聚焦点和事件支持。它还提供DependencyObject属性支持。
●TextNavigator-这可以枚举文本内容。实现可移动的TextPosition。它可以根据运行的或定位在文本中已知位置的文本移动。
●TextParagraphResult-提供对计算出的文本布局参数的访问,这些参数包括浮动的对象和图形。
●TextPosition-这是表示TextArray中特定位置的对象。表示文本中位置的紧凑对象在文本改变时自动地保持位置。比较操作仅适用于同一TextArray(同一上下文)内的位置。TextPosition可以是静态的或可移动的。IsChangeable属性区分位置的类型。
●TextRange-TextRange是向零或多个子范围的通用关联提供属性的抽象类。在导出类中定义子范围处理。
●TextRangeMovable-TextRangeMovable是可移动TextRange的抽象类。它提供基于TextUnit移动起始和终止端点的能力。
●TextTreeChangedEventArgs-TextChangedEventArgs定义在TextArray改变时发送的事件参数。
●TextTreeDumper-TreeDumper是树检验类,由于打包问题它是一个公共类。
●TextTreeNavigator-这是表示TextTree中特定的可移动位置的对象。它是TextNavigator的具体实现,并只用在TextTree中。
●TextTreePosition-这是表示TextTree中特定的不可变的位置的对象。它是TextNavigator的具体实现,并只用在TextTree中。
●TextTreeRange-对TextTree提供TextRange工具。它是用可移动端点的可改变的、连续TextRane。
●TextTreeRangeContentEnumerator-直接在TextTreeRange下面的直接子对象的枚举器。
●TextUnit-文本导航的可扩展单位。
●TextUnits-对TextPosition和TextRange通常使用的文本单位。
●Typography-提供对OpenType字体属性的丰富集合的访问。
●UIElementParagraphResult-完全由UIElement构成的段落的ParagraphResult。用于浮动的对象、图形和嵌入的块级别UIElement。
●Underline-实现从InlineElement导出的Underline元素。
下面的列表包含和System.Windows.Documents名字空间关联的例子接口。
●IDocumentContentHost-在内容宿主机上实现此接口以使得该宿主机的子对象可以在内容改变时通知该宿主机。
●IDocumentFormatter-在元素上实现此接口以提供对如分页这样的文档特性的支持。
●ITextDocumentResult-实现此接口来保持文档的列信息。
●ITextParagraphResult-实现此接口以提供文本和对文本段落的定位信息。
下面的列表包含和System.Windows.Documents名字空间关联的例子枚举。
●ElementEdge-这标识TextPosition被定位的对象的边缘。
●FindAdvancedOptions-由FindAlgorithm(搜索初始化)和TextRangeMovable/TextSelection(简化的搜索执行)类使用的高级搜索选项。
●FindOptions-由TextBox.Find方法使用的简化搜索选项。
●LogicalDirection-LogicalDirection定义在文本中移动的逻辑方向。它也用于确定在TextPosition插入内容时将TextPosition移至何处。
●TextArrayRunType-识别TextPosition所处的范围,并考虑LogicalDirection。
●TextChangeOptions-对CanChangeText的可能的文本改变。
●TextMoveOptions-这通过指定终止导航的条件控制TextNavigator的移动。
下面的列表包含和System.Windows.Documents名字空间关联的例子代理。
●ObjectCloneDelegate-在复制或移动TextArray的一部分时提供DependencyObject的克隆或拷贝的回调用方法。
●TextChangedEventHandler-在每次增加内容到TextTree或从TextTree移除内容时用TextChangedEventArgs调用TextChangedEventHandler代理。
形状(shape)名字空间
形状名字空间314是用于创建图像和对象的矢量图形元素的集合。使用矢量图形元素允许简单地重新设置元素的大小以适合特殊接口或显示设备的要求。例子元素包括画椭圆的“Ellipse”元素、在两点之间画直线的“Line”元素、画矩形的“Rectangle”元素,以及将多边形作为构成封闭形状的连接的直线序列画出的“Polygon”元素。
下面的列表包含由System.Windows.Shapes名字空间展现的例子类。
●Ellipse-画椭圆。
●Glyphs-表示如“XAML”这样的标记语言中的字形。Glyphs用于表示字体。
●Line-画两点之间的直线。
●Path-画一系列的相连直线和曲线。
●Polygon-画多边形(构成封闭形状的连接的直线序列)。
●Polyline-画一系列的连接直线。
●Rectangle-画矩形。
●Shape-对形状元素(如椭圆、多边形和矩形)提供基础功能的抽象类。数据名字空间
数据名字空间316包括用于绑定属性元素到数据源、数据源类及数据集合与视图的数据特定的实现的类和接口。这些类和接口也用于处理数据条目中的例外并允许基于各种数据源中的信息在运行时创建用户接口。可以用文本形式显示数据或用数据来改变显示的格式,例如,若美元数量为负数则以红色显示。例子类包括“Bind”类,它表示管理动态属性用户接口和源数据之间的绑定的绑定说明对象,及“XmlDataSource”类,它充当用于绑定到XML内容节点的数据的数据源。
面向对象的应用通常用定义一段数据的值以及可以对该数据执行的操作的类来表示数据。术语“数据项”指一个这样的对象。应用软件可以处理单独的数据项或数据项的集合。它们可以用三种方式使用数据项:(a)将来自外部数据源(如文件系统、远程服务器、数据库等等)的数据转换为对应的存储器内的数据项,并将修改后的数据项转换回到这些数据源所期望的形式;(b)使用数据为中心及应用为中心的逻辑的组合操作数据项;(c)通过用户接口向用户呈现由数据项实现的数据。数据名字空间316对这些任务中的第一个和第三个提供支持。
第一个任务,获取来自外部数据源的数据,由“数据源”对象支持。数据源对象通常被定义为页范围或应用范围的资源,并充当数据的信关。数据源实现IDataSource接口,此接口定义在数据名字空间中的类获取对数据的访问的标准机制。特殊的数据源对象实现通过使用适合于特殊源的机制检索实际数据的逻辑。在一个实施例中,数据名字空间包括四个数据源类:
1.XmlDataSource,用于检索表示为XML的数据。
2.SqlDataSource,用于从SQL数据,如Microsoft SQL Server,库检索数据。
3.WinFSDataSource,用于从WinFS服务检索数据。
4.ObjectDataSource,用于从应用软件定义的任意对象检索数据。
应用软件也可以定义裁剪成专用目标源的它们自己的数据源类。
数据源类负责从外部源检索数据并将它转换为适合于由绑定类使用的一个或多个数据项。如果需要数据项的集合,则应用软件可以使用任何来自.Net框架的标准集合类,如Array、ArrayList、Hashtable等等、任何来自System.Data名字空间的数据为中心的集合类,如Dataset,或来自数据名字空间数据为中心的集合类,如ArrayListDataCollection。后面的这些类支持改变通知,即,当应用软件通过增加项、移除项、对集合排序等等改变集合时,集合发送通知。绑定类侦听这些通知并自动地更新用户接口来反映此改变。
一旦数据已被转换为存储器内的数据项,应用软件就可以使用这些项执行计算并可以修改这些项将其作为计算的结果。使用数据为中心的操作(由数据项类定义)和应用为中心的操作(由应用软件自身定义)的组合来执行这些动作。这些动作可以由应用软件自动触发,或响应用户的动作触发。来自数据名字空间的特殊支持或合作不是必须的,从而在应用内提供逻辑和表示的清楚的划分。
第三个有关数据的任务,通过用户接口呈现数据,由数据名字空间的“绑定”类支持。这些类使得应用软件能够描述数据项属性(源)和用户接口属性(目标)之间的对应关系(绑定)。术语数据绑定(或简单地,绑定)指建立这样的对应关系。例如,应用软件可以选择将Textbox控件的Text属性和数据项的CustomerName属性进行数据绑定。这样之后,控件将自动显示客户的名字,在应用改变数据项的时候更新显示,并在用户输入新名字到控件中时更新数据项。
使用Bind类来描述这类对应关系,并使用Binding类来实现这类对应。任何数量的UI属性可以共享同一描述(Bind),但是每个属性有它自身唯一的Binding,Binding包含该特殊实例的状态。该描述包括下面有关所需对应关系的信息:
●Path-用作绑定的源的数据项属性的名称。这可以是简单的属性名称,或包括子对象和下标(如,当源属性有复杂类型的值时)的更加复杂的表达式,如“ShippingAddress.Line[2]”。当数据源为XML时,路径为XPath表达式。
●BindType-对应关系是否为单向、双向或一次性的。在单向绑定中,对数据项的改变导致对用户接口属性的更新;数据率单向流动-从源到目标。在双向绑定中,数据双向流动;除了单向行为以外,对用户接口属性的改变导致对数据项属性的更新。在一次性绑定中,数据项属性被用来初始化用户接口属性,但是改变将不在任何方向上扩散。
●Source-在何处获取源数据项的描述。这可以来自数据源对象、来自某些其他用户接口元素,或来自目标元素的DataContext属性的值。
●UpdateType-在双向绑定中何时更新源属性:Immediate、OnLostFocus或Explicit之一。Immediate更新在用户接口属性一改变时立即发生。OnLostFocus更新被延迟到目标元素失去键盘焦点的时候-这适合于TextBox控件,以避免在每次按键之后就更新的开销。Explicit更新在应用软件明确调用它们时发生。
●Transformer-实现IDataTransformer接口的对象。这向应用软件给出在用户接口中使用之前修改数据项值的方法。修改可以是简单的类型转换(如,在Background属性到BalancedOwed数据属性的绑定中,应用软件可以转换负的余额为红色背景而正的余额为绿色背景),或特定于应用的转换(如,在Text属性到NetWorth数据属性的绑定中,如果NetWorth超过一百万美元则应用可以显示“富有”,如果NetWorth在十万美元到一百万美元之间则显示“中产阶级”,而如果NetWorth小于十万美元则显示“贫穷”。Transformer是有助于根据数据分离表示的简单但强大的工具。
除了一次性绑定之外的所有绑定都依赖于在数据属性改变时得到通知,从而可以对用户接口做出相应的改变。绑定类将IPropertyChange接口(来自System.ComponentModel名字空间)作为一种实现所需通知的方法。
下面的表列出了由System.Windows.Data名字空间展现的成员。
Figure C20041007850400341
Figure C20041007850400351
Figure C20041007850400361
  接口
  IContains   用于创建说明集合视图过滤准则的类。
IDataSource   支持数据源对象的创建。数据源对象被用于用于数据绑定的数据的通用表示。
IDataTransformer   提供使能在客户机方转换绑定数据的方法。
 枚举
BindFlags   描述绑定的特殊属性。参见使用“Longhorn”标记语言(代码名称为“XAML”)的绑定说明的用法。参见用于指定绑定类型(单向、双向等等)的枚举的BindType。
 BindStatus   绑定的状态。
BindType   描述数据值的改变如何来自绑定的源属性和目标属性并传输给它们。
SqlDataSourceMode   枚举SqlDataSource可能具有的模式。模式确定当应用软件检索来自Data属性的值时返回何种类型的数据。
UpdateType   指定在绑定中应何时发生对数据源的更新(目标到源的数据传输)。设置这些值仅在绑定的BindType被设置为TwoWay(或保持为缺省值)时相关。
  代理
DataChangedEventHandler   表示处理由实现IDataSource的数据源触发的DataChanged事件的方法。
DataTransferEventHandler   表示处理由Binding触发的数据传输事件的方法。
RefreshCompletedEventHandler   表示处理ObjectDataSource.RefreshCompleted和XmlDataSource.RefreshCompleted事件的方法。
媒体名字空间
媒体名字空间318提供各种媒体类。应用软件开发者及组件开发者可以使用这些类来开发各种表示功能。媒体名字空间318中的例子类包括支持特定图像效果(如,模糊和灰度)的“ImageEffect”类和提供使用单色、渐变色、图像、视频等等填充区域的机制的“Brush”类。
媒体名字空间318包括子名字空间System.Windows.Media.Animation,该子名字空间包括允许开发者用动画呈现属性并协调带一组时间线的动画集合。动画是在一段时间上改变值的对象。动画效果包括在显示上移动一对象,及改变一对象的大小、形状或颜色。提供多个动画类以实现各种动画效果。效果可以通过关联动画和元素的属性值来实现。例如,为了创建淡入和淡出视图的矩形,一个或多个动画和矩形的透明度属性关联。
媒体名字空间318也包括提供各种文本服务的子名字空间System.Windows.Media.TextFormatting。例如,“TextFormatter”文本引擎提供划分文本行并格式化在显示上呈现的文本的服务。“TextFormatter”能够处理不同的文本字符格式和段落样式,且能够处理国际化文本布局。
下面的表列出由System.Windows.Media名字空间展现的例子成员。
  类
  ArcSegment   表示两点之间的椭圆弧。
AudioData   根据时间节点的状态使能播放音频文件。
  AudioDataConverter   AudioDataConverter
BezierSegment   表示在两点之间画出的立方贝塞尔曲线。
Brush   提供使用单色(SolidColorBrush)、渐变色(LinearGradientBrush、RadiaGradientBrush)、图像(ImageBrush)、视频等等填充区域的通用方法。
BrushConverter   用于在Brush对象和其他对象类型之间进行转换。
  Brushes   实现一组预定的单色。
CloseSegment   表示连接PathFigure的最后一个点和其起始点的线。
CodecFilter   枚举编码解码器的过滤器。只枚举那些和属性匹配的编码解码器。
CodecInfo   有关特定编码解码器和创建该编码解码器的工厂的信息。这是从编码解码器枚举器返回。
  ColorCollection
ColorCollectionConverter   ColorCollectionConverter-用于在其他类型的实例和ColorCollection实例之间进行转换的转换器类。
  ColorContext
ColorConverter   用于在Color对象和其他对象类型之间进行转换。
  Colors   实现一组预定的颜色。
  ContainerVisual   管理Visual对象的集合。
DashArrays   DashArrays-DassArrays类是静态的,并包含用于众所周知的虚线样式的属性。
  DoubleCollection
DoubleCollectionConverter   DoubleCollectionConverter-用于在其他类型的实例和DoubleCollection实例之间进行转换的转换器类。
  Drawing   Drawing为2D绘画原语的列表。
DrawingBrush   DrawingBrush-此TileBrush定义其内容为Drawing。
  DrawingContext   绘画上下文。
  DrawingVisual   包含被画出的图像内容的可视组件。
  EllipseGeometry   表示圆或椭圆的几何。
  FontFamily   字体族。
FormattedText   FormattedText类是Avalon MIL简单文本API的部分,它针对需要增加某些简单文本到MIL可视组件的程序员。
Geometry   对所有的几何图形类(如EllipseGeometry、RectangleGeometry和PathGeometry)提供基础功能的抽象类。对象的Geometry类可以用于剪切、点击测试和呈现2D图形数据。
  GeometryCollection   表示Geometry对象的集合。
  GetPageEventArgs   GetPageEventArgs类。
  GlyphRun   GlyphRun类。
  GlyphTypeface   对应于盘上的字体文件的物理字体。
GradientBrush   描述渐变色填充的抽象类。从GradientBrush导出的类描述解释渐变色停止点的不同方法。
  GradientStop   描述渐变色中转换点的位置和颜色。
GradientStopCollection   表示GradientStop渐变色停止点的集合。
  HitTestParameters   这是包装用于点击测试的诸参数的基础
  类。
HitTestResult   这个基础类返回在点击测试中点击中的可视组件。
  HwndInterop   HwndInterop。
  HwndVisual
  HyphenationCandidate   描述一个连字候选。
  ICCProfile
ImageBrush   用图像填充区域。此类可用于将图像指定作为其他对象的填充和背景。
ImageCodecCollection   系统上编码解码器的集合(实际的CodecInfo)。
  ImageCodecEnumerator   图像帧的枚举器。
ImageColorTransform   ImageColorTransform在图像管线上执行颜色管理。
  ImageData   包含图像和相关数据。
  ImageDataBuilder   此对象被用来构建ImageData对象。
ImageDecoder   ImageDecoder是图像帧的容件。每个图像帧都是ImageSource。不像ImageSource,ImageDecoder不是不可变的对象且可以重新初始化为不同的图像流。然而,任何返回的ImageSource(帧)都是不可变的。
  ImageDecoderBmp   内置的Microsoft Bmp(位图)解码器。
  ImageDecoderGif   内置的Microsoft GIF解码器。
  ImageDecoderIcon   内置的Microsoft图标解码器。
  ImageDecoderInternal   仅在内部使用。
  ImageDecoderJpeg   内置的Microsoft Jpeg解码器。
  ImageDecoderPng   内置的Microsoft Png解码器。
  ImageDecoderTiff   内置的Microsoft Tiff解码器。
  ImageEffect   ImageEffect类是所有图像效果(模糊、
  灰度等等)的基类。效果可能没有任何输入但效果应至少有一个输出。缺省的实现假设是这样。如果要用输出/多个输出播放导出的效果,则应确保至少有一个输出。
ImageEffectBlur   高斯模糊效果。它是单输入、单输出效果。警告:如果缩放此效果(即,Input.ScaleX和Input.ScaleY不是1)且Expand是真,则可能输出比PixelWidth和PixelHeight更大或更小的维度。调整用于复制的象素缓冲来避免问题。
ImageEffectFlipRotate   此效果可以在X或Y方向翻转图像及将图像旋转90度的倍数。
  ImageEffectGammaCorrect   此效果改变图像的灰度系数。
ImageEffectGlow   执行发光效果。它是单输入、单输出效果。
ImageEffectGrayscale   转换图像为灰度。它是单输入、单输出效果。
  ImageEffectNegate   对图像求逆。它是单输入、单输出效果。
ImageEffectSharpen   模糊遮蔽罩(mask)。它是单输入、单输出效果。
  ImageEffectSource   ImageEffectSource类的实现。
  ImageEffectSourceCollection   图像效果输出的集合。
  ImageEffectTint   色调构造器。它是单输入、单输出效果。
ImageEncoder   ImageEncoder收集一组(ImageSource的)帧及它们相关的缩略图和元数据并将它们保存到指定的流。除了特定于帧的缩略图和元数据,如果编码解码器支持的话,也可以有图像范围(全局)的缩略图和元数据。
 ImageEncoderBmp   内置的Bmp文件编码器。
 ImageEncoderGif   内置的Gif文件编码器。
ImageEncoderInternal   ImageEncoderInternal  收集一组(ImageSource的)帧及它们相关的缩略图和元数据并将它们保存到指定的流。除了特定于帧的缩略图和元数据,如果编码解码器支持的话,也可以有图像范围(全局)的缩略图和元数据。
 ImageEncoderJpeg   内置的Jpeg文件编码器。
 ImageEncoderPng   内置的Png文件编码器。
 ImageEncoderTiff   内置的Tiff文件编码器。
ImageExchangeMetaData   ImageExchangeMetaData这个类被用于访问和设置具有Exif样式元数据的ImageFile的元数据。MetaData作为键/值的配对来存储,其中键不一定是唯一的。这个类提供对图像内所有元数据的通用访问,并对某些众所周知的属性展现CLR属性。
ImageExchangeProperty   ImageExchangeProperty-ImageExchangeID和作为该属性值的对象的元组。
ImageMetaData   ImageMetaData这个类用于访问和设置Image的元数据。此类也展现CodecMetaData属性,用它展现访问此图像源数据的专用于编码解码器的方法。
 ImagePalette   ImagePalette类。
ImageSizeOptions   图像的大小设置选项。将基于这些选项缩放得到的图像。
ImageSource   定义用于图像管线的方法、属性和事件,包括解码器和效果。
ImageSourceCollection   系统上的编码解码器的(实际上是ImageSource的)集合。
  ImageSourceConverter   ImageSourceConverter
  IntegerCollection
IntegerCollectionConverter   IntegerCollectionConverter-在其他类型的实例和IntegerCollection实例之间进行转换的转换器类。
  LinearGradientBrush   定义用于填充区域的线性渐变色。
  LineGeometry   表示直线的几何图形
LineSegment   表示两点之间的线段。不像LineGeometry对象,LineSegment应包含在PathFigure内。
MatrixTransform   创建任意的用于处理两维平面上的对象或坐标系统的仿射矩阵变换。
  MediaData   MediaData。用于回放音频/视频内容。
  MediaSystem   MediaSystem类控制媒体层。
NineGridBrush   用图像填充整个区域。拉伸图像以拟合则所定义的边界。
PathFigure   表示几何图形的分段,二维几何图形线段的单个连接序列。
  PathFigureCollection
  PathFigureConverter   PathFigureConverter
PathGeometry   表示可以由弧、曲线、椭圆、直线和矩形组成的复杂形状。
  PathGeometryConverter   PathGeometryConverter
PathSegment   表示PathFigure对象的一段的抽象类。从PathSegment  导出的类,如ArcSegment、BezierSegment和LineSegment,表示特定类型的几何图形线段。
  PathSegmentCollection   表示PathSegment对象的列表。
  PathSegmentConverter   PathSegmentConverter
  Pen   描述如何画出形状的轮廓。
PixelFormats   PixelFormat-所支持的象素格式的集合。
  PointCollection
PointCollectionConverter   PointCollectionConverter-用于在其他类型的实例和PointCollection实例之间进行转换的转换器类。
PointHitTestParameters   这是用于指定用一点来作点击测试的参数的类。
PointHitTestResult   此类返回该点和在点击测试中点击到的点和可视组件。
  PolyBezierSegment   PolyBezierSegment
  PolyLineSegment   PolyLineSegment
  PolyQuadraticBezierSegment   PolyQuadraticBezierSegment
PrintContext   PrintContext包含打印机交互的状态和上下文。
  QuadraticBezierSegment   QuadraticBezierSegment
RadialGradientBrush   定义用于填充对象的放射渐变色。焦点定义渐变色的开始,圆定义渐变色的终点。
  RectangleGeometry   表示矩形的几何形状。
  RetainedVisual   RetainedVisual
RotateTransform   用于在二维x-y平面上围绕指定的点旋转一对象。
ScaleTransform   在二维x-y平面上从定义的中心点开始来缩放一对象。在x和y方向定义从这个中心点缩放因子。
  SkewTransform   表示二维扭斜。
  SolidColorBrush   表示单色的均匀填充。
  StartSegment   StartSegment。
SubLineCollection   子线段的集合。子线段可以是GlyphRun、LineOver、Inine对象这些类型中一种的对象。
TileBrush   描述用一个或多个“贴图”填充区域的方法的抽象类。导出的类定义可以使用的不同类型的贴图;例如,ImageBrush使用户可以用图像填充区域。
Transform   用作二维平面上所有类型的转换,包括旋转(RotateTransform)、缩放(ScaleTransform)、扭曲(SkewTransform)和平移(TranslateTransform)的父类的抽象类。这个类层次结构不同于Matrix结构,因为它是一个类,还因为它支持动画和枚举语义。
TransformCollection   用于创建和处理Transform对象的一个列表。
TransformConverter   用于在Transform对象和其他对象类型之间进行转换。
  TranslateTransform   在二维x-y平面上平移一对象。
Typeface   Typeface为字体、加浓、样式和伸展的组合。
  VectorCollection
VectorCollectionConverter   VectorCollectionConverter-用于在其他类型的实例和VectorCollection实例之间进行转换的转换类。
VideoData   使能根据时间节点的状态播放视频文件。
  VideoDataConverter   VideoDataConverter
Visual   所有可视组件类型的基类。它提供所有的可视组件共有的服务和属性,包括点击测试、坐标转换和边界框计算。
  VisualCollection   Visual对象的有序集合。
VisualManager   呈现Visual对象树到呈现目标,呈现目标通常是-窗口。
  接口
  IHyphenate   IHyphenate是连字服务提供器的接口。
IRetainedRender   如果此接口在从RetainedVisual导出的类上实现,则以校验模式的RetainedVisual操作,即,图形子系统将以缓慢的方式调用OnRender。(如,如果Visual第一次在屏幕上出现)。注意OnRender可以由系统在任何时间调用。
IVisual   此接口定义从Visual对象可得到的共同的方法和服务。
  枚举
BrushMappingMode   BrushMappingMode-描述是否应将某些值看作绝对的局部坐标或它们是否应作为边界框大小倍数的枚举。
  ChannelDescription   描述象素数据的每个通道的顺序。
ColorInterpolationMode   ColorInterpolationMode-这确定渐变中的颜色如何内插变化。
CombineMode   指定用来组合两个几何图形区域的方法。
  FillRule
GradientSpreadMethod   指定在指定的渐变向量或空间之外如何画出渐变色。
HitTestFilterBehavior   在进行点击测试时过滤可视组件的行为。
HitTestResultBehavior   枚举当在点击测试中出现有效点击时的控件行为。
HorizontalAlignment   HorizontalAlignment枚举被用于描述内容如何在容件内水平地放置。
  HyphenationRule   所支持的连字规则。
  ImagePaletteType   预定义的调色板类型。
  MediaState   包含媒体的当前状态。
PenDashCap   PenCashCap-描述在虚线内虚线终端的画法的枚举。
  PenLineCap   描述在直线或线段终端的形状。
PenLineJoin   PenLineJoin-描述直线转角的画法的枚举。
  Rotation   所应用的旋转;仅支持90度的倍数。
  StandardColorSpace
Stretch   Stretch-描述源矩形应如何拉伸以拟合到目标矩形的枚举。
  StyleSimulations   字体样式模拟。
  TiffCompressOptions   用于保存TIFF图像的压缩选项
TileMode   TileMode-描述直线终端画法的枚举。(译者注:疑意思不对)
VerticalAlignment   VerticalAlignment枚举用于描述如何在容体内垂直地放置内容。
  结构
  CharacterIndexer   此类是实现字符的命名索引的辅助器。
  Color   以alpha、红、绿和蓝通道表示颜色。
GlyphIndexer   此类是实现字形度量的命名索引的辅助器。
ImageExchangeID   ImageExchangeID-这个类是可以在ImageMetaData实例中用作属性的键值的类型。
ImageExchangeMetaDataEnumerator   ImageExchangeMetaDataEnumerator-ImageExchangeMetaData的枚举器。包含IEnumerator接口及API的强类型版本。
 ImageFrameEnumerator   Image帧的枚举器。
ImageMetaDataRational   ImageMetaDataRational类表示为有符号的分子和有符号的分母。有理数的有效值是分子/分母。
ImageMetaDataUnsignedRational   有理数类表示为无符号的分子和无符号的分母。有理数的有效值是分子/分母。
 ImagePaletteColor   ImagePaletteColor结构。
IntegerRect   由整数值组成的矩形。通常用来从图像中(以象素)指定关注的源矩形。
Matrix   表示用于在二维空间中的转换的3×3的矩阵。由于“Avalon”只允许仿射转换,Matrix结构包含六个条目,而非九个。
NamedStringIndexer   这个类为实现在多种文化中本地化的字符串的命名索引的辅助器。
PixelFormat   对图像和基于象素的表面的象素格式定义。
  代理
  GetPageEventHandler   代理GetPageEventHandler。
  HitTestFilterDelegate   代理点击测试器来控制是否测试可视组
  件的子元素。
HitTestResultDelegate   代理点击测试器来控制可视组件上的点击信息的返回。
下面的表列出由System.Windows.Media.Animation名字空间展现的例子成员。
  类
Animatable   任何并非从DependencyObject导出但是有可以用动画呈现的属性的类应从这个类导出。
AnimationCollection   这个抽象类为动画集合,如ColorAnimationCollection、DoubleAnimationCollection和SizeAnimationCollection提供基础功能。
AnimationEffect   覆盖这个类来实现可以参与呈现处理以在呈现时在多个元素上实例化动画的元素级别动画。
  AnimationEffectCollection   包含AnimationEffect的集合。
  BoolAnimationCollection   表示BoolModifier动画的集合。
  BoolModifier
  BoolTimedModifier
  ByteAnimationCollection   表示BoolModifier动画的集合。
  ByteModifier
  ByteTimedModifier
  CharAnimationCollection   表示CharModifier动画的集合。
  CharModifier
  CharTimedModifier
  ColorAnimation   用动画呈现属性的颜色值。
  ColorAnimationCollection   表示ColorModifier动画的集合。
  ColorKeyFrameCollection
  ColorModifier
  ColorTimedModifier
  DecimalAnimationCollection   表示DecimalModifier动画的集合。
  DecimalModifier
  DecimalTimedModifier
DoubleAnimation   用于对接受Double值的属性进行动画呈现。
  DoubleAnimationCollection   表示DoubleModifier动画的集合。
  DoubleKeyFrameCollection
  DoubleModifier
  DoubleTimedModifier
FloatAnimation   用于对接受Single值的属性进行动画呈现。
  FloatAnimationCollection   表示FloatModifier动画的集合。
  FloatKeyFrameCollection
  FloatModifier
  FloatTimedModifier
  IntAnimationCollection   表示IntModifier动画的集合。
  IntModifier
  IntTimedModifier
LengthAnimation   用于对接受Length值的属性进行动画呈现。
  LengthAnimationCollection   表示LengthModifier动画的集合。
  LengthKeyFrameCollection
  LengthModifier
  LengthTimedModifier
  LongAnimationCollection   表示LongModifier动画的集合。
  LongModifier
  LongTimedModifier
  MatrixAnimationCollection   表示MatrixModifier动画的集合。
  MatrixModifier
  MatrixTimedModifier
  Modifier
  ObjectAnimationCollection   表示ObjectModifier动画的集合。
  ObjectModifier
  ObjectTimedModifier
PathAnimation   可以在MatrixAnimationCollection内部使用这个动画以沿着一路径移动可视组件对象。
PointAnimation   用于对接受Point值的属性进行动画呈现。
  PointAnimationCollection   表示PointModifier动画的集合。
  PointKeyFrameCollection
  PointModifier
  PointTimedModifier
RectAnimation   用于对接受Rect值的属性进行动画呈现。
  RectAnimationCollection   表示RectModifier动画的集合。
  RectKeyFrameCollection
  RectModifier
  RectTimedModifier
  ShortAnimationCollection   表示ShortModifier动画的集合。
  ShortModifier
  ShortTimedModifier
SizeAnimation   定义基于一对象的Size的动画。通过提供Size信息,对象可以在一段时间内显得缩小或变大。
  SizeAnimationCollection   表示SizeModifier动画的集合。
  SizeKeyFrameCollection
  SizeModifier
  SizeTimedModifier
  StringAnimationCollection  表示StringModifier动画的集合。
  StringModifier
  StringTimedModifier
  Timeline  对定时对象保持运行时定时状态。
  TimelineBuilder  可用于创建Timeline对象的对象。
  TimeManager  控制整个定时树的对象。
TimeSyncValueTypeConverter  执行涉及TimeSyncValue值的类型转换的对象。
  TimeTypeConverter  执行涉及Time值的类型转换的对象。
VectorAnimation  用于对接受Vector值的属性进行动画呈现。
  VectorAnimationCollection  表示VectorModifier动画的集合。
  VectorKeyFrameCollection
  VectorModifier
  VectorTimedModifier
  接口
  IClock   表示所提供线性时间值的对象。
IModifier   定义修改器对象的基本行为。修改器是取称为基本值的一个特定类型的对象,并返回同一类型的另一个对象作为其输出的对象。
  ITimingControl   定义时间线和定时对象的行为。
  ITimingControlBuilder   表示可以构建时间模板的对象。
 枚举
 AnimationType   描述动画的行为。
 CloneType   CloneCore可以请求的克隆类型。
 InterpolationMethod   描述动画如何计算其输出值。
 KeyTimeType   不同类型的KeyTime。
TimeEndSync   endSync属性的值,它指定容件如何基于子元素的持续时间计算其简单持续时间。
 TimeFill   指定时间线在它不再有效时如何表现。
 TimeRestart   Timeline.Restart属性的值。
TimeSeekOrigin   指示时间线的位置;用于通过定义偏移量所应用的位置指定ITimeControl接口的Seek方法的行为。
 TimeSyncBase   同步开始或终止值的事件。
  结构
  ColorKeyFrame
  DoublekeyFrame
  FloatKeyFrame
KeySpline   这个类用于传递关键样条的数组到动画片段的KeySplines属性。
KeyTime   KeyTime用于指定KeyFrame相对于动画的时间何时出现。
  LengthKeyFrame
  PointKeyFrame
  RectKeyFrame
  SizeKeyFrame
  Time   表示时间的值,与时间算术操作关联。
  TimelineEnumerator   枚举TimelineList集合中的项。
TimeSyncValue   表示时间线的绝对或相对开始或终止时间的值。
  VectorKeyFrame
下面的表列出由System.Windows.Media.TextFormatting名字空间展现的例子成员。
  类
InlineObjectInfo   提供内部文本对象的测量细节。格式化客户将此对象作为一参数传送到GetInlineObjectInfo方法。
TextFormatter   TextFormatter是“Avalon”文本引擎并提供格式化文本和对文本分行的服务。TextFormatter可以处理不同的文本字符格式和段落样式,并包括对国际化文本布局的支持。
  TextHighlightBounds   文本范围的边界。
TextInfo   表示有关客户的文本源字符存储中的文本块的信息。
TextLine   对一行文本提供服务。从这个类继承来实现处理和格式化一行文本的服务。这是一个抽象类。
  TextMarkerGeneratedContent   生成行列表标记输出。
TextMarkerInfo   定义段落的列表标记的样式和类型。格式化客户将此类作为参数使用以向GetTextMarkerInfo方法提供标记细节。
TextParagraphProperties   表示可以从一个段落改变到下一个段落的属性,如流方向、对齐或缩进。
TextRun   定义共享单个属性集合的字符序列。格式化客户在TextFormatter将此类作为GetTextRun方法的参数传递时提供TextRun的细节到这个类。
  TextRunBounds   文本范围的边界。
TextRunCache   向TextFormatter对象提供缓冲服务以提高性能。
  TextRunClientData   表示和TextRun关联的客户信息数据。
TextRunProperties   提供可以从一个TextRun改变到另一个的属性,如字形或前景笔划。这是一个抽象类。
TextRunTypographyProperties   提供TextRun的字体属性。这个客户属性集合产生由OpenType布局引擎处理的特性集合。
TextSource   向TextFormatter提供字符数据及格式化属性。所有对TextSource中的文本的访问都通过GetTextRun方法实现,此方法设计成允许客户以它选择的任何方式可视化文本。这是一个抽象类。
TextTrimmingInfo   提供文本剪裁特性的描述。当TextFormatter将此类作为参数传递给GetTextTrimmingInfo方法时,格式化客户填入剪裁细节到这个类。
  枚举
  TextParagraphFlags   描述段落特性的标志。
  TextRunCacheFlags   文本范围缓存器中的内容的类型。
  TextRunType   指示TextRun的类型。
  结构
TextSourceCharacterIndex   TextSourceCharacterIndex表示文本中的插入记号或字符位置。
媒体集成层
媒体集成层(MIL)为开发者或程序员提供API使得可以在他们的应用中以直接的方式实现可能的复杂合成效果,而以不对正常的应用性能产生负面影响方式充分利用图形处理单元。MIL的一个方面提供组合不同媒体类型(如,2D、3D、视频、音频、文本、图像等等)并流畅无缝地一起用动画呈现它们的能力。
MIL提供图形架构,用于多阶段合成及允许在编程和脚本接口进行功能类比的编程模型。API和脚本允许创建保留的结构或在呈现时合成的场景描述,还包括具有更立即方式本质的区域。
通过接口,MIL提供对存储可视信息的数据结构的访问,从而应用软件可以利用由计算机硬件提供的图像能力。接口基于元素对象模型和矢量图形标记语言,用于以允许程序代码开发者稳定地连接场景图形数据结构来产生图形的方式来使用该元素对象模型。也可以使用此数据结构进行直接呈现或“编译”可视信息,从而可以给低层的图形系统提供快速的合成和动画。
矢量图形元素对象模型总的来说对应于形状元素和其他元素,包括和场景图形的场景图形对象模型相关的图像及视频元素。标记可以解析为数据,包括元素树中的元素,元素又可以转换为场景图形数据结构中的对象。其他标记可以直接转换为数据及创建场景图形对象的调用。标记语言提供独特的方式来描述元素,包括简单的字符串格式或复杂的属性语法,属性可被重命名,使能在标记中的其他地方进行重用。
MIL的一个方面是跨API集合集成动画和定时,将动画提供作为内在的基础级别概念。为了帮助流畅的动画,MIL提供(如操作系统的)多层图处理系统和方法。一个那样的图形处理系统包含两个组件,这包括按命令运作或慢速运作的高层组件,及快速处理(如,以图形硬件帧刷新速率)的低层组件。总的来说,为了向低层组件传递简化的数据结构,高层、频率较低的组件执行计算量大的更新动画参数和穿过场景数据结构的方面。为了处理数据结构而生成恒定的图形子系统输出数据,低层组件以较高的频率,如图形子系统的帧刷新率工作。低层处理包括在需要获取实时值以呈现动画的每一帧的场景时,对任何参数时间间隔进行内值计算。
顶层MIL对象包括可视组件树,它是包含将画出的主要内容的对象。控件将直接从此树的可视组件导出。可视组件独立于设备和父组件上下文。呈现目标是画可视组件的设备。此对象,(如,屏幕)可以有它自身的缺陷或不足的机制。各种呈现目标包括屏幕上的窗口、打印机、元文件、表面及“子窗口”,子窗口为独立于剩下的场景画出的部分场景。其他和画图组件相关的对象包括可视组件呈现器,它包括配置为将可视组件树画到呈现目标上的对象,及知道何时将可视组件树画到呈现目标上的显示调度器对象。时间管理器是一组定时节点的上下文对象,而且是调度器调用运作的对象。
提供可视API,这本质上是通过媒体集成层画图组件的起始点,并包括多种类型的对象,包括VisualManager对象,它将VisualTree连接到媒体。不同类型的VisualManager(如,Screen、Printer和Surface)负责呈现VisualTree到它们特定的媒体。可视组件是其中程序员画图的地方;它是可视组件树中的节点并为程序提供画图的地方。
DrawingContext API提供基于上下文的编程模型,编程模型用于确定如何构建放置Visual的可视内容或将其呈现到ImageData。提供DrawingContext类,及获取DrawingContext并枚举RetainedVisual/DrawingVisual中的可视内容所需的类和切入点。
为了支持可变性,提供了从Changeable基类导出的一组类型。任何需要可变性的类型都可以从Changeable类导出。例如,在图形编程中,对象模型包括Brush、Pen、Geometry、FloatAnimation、GradientStop、Segment等等。IsChangeable属性根据它的定义一个状态的当前值规定是否可以修改可变的对象。
画笔是表示填充平面的方法的对象。除了能够以绝对的方式填充平面以外,媒体集成层的画笔也可以确定它们如何相对于它们所填充的对象的大小填充平面。画笔类型的例子包括SolidColorBrush、VisualBrush(它可以引用矢量图形资源/Visual)、DrawingBrush、LinearGradient、RadialGradient、ImageBrush和NineGridBrush。某些的画笔对象可以在使用它们时知道它们和坐标系统的相对关系,也可以知道它们和它们所用的几何图形边框的相对关系。这个大小基于画笔所填充的对象。Brush基类有转换、通用不透明度和混合模式。画笔(及矢量图形和MIL API中的其他对象资源)对象是Changeable且在它们被创建之后可以对它们进行写入,并遵从通用的Changeable模式以确定它们在以正常方式使用以后的行为。
Geometry类的对象可以用于剪裁、点击测试及用Pen和Brush呈现基于矢量的2D数据。导出的Geometry类提供更加具体的构建和枚举语义。提供一些特定于形状的Geometry类型,以及允许明确定义有更加复杂的形状的Geometry的广义PathGeometry。Geometry是抽象基类。GeometryCollection是在它们定义的区域上使用特殊的CombineMode操作组合的多个Geometry对象的集合。此对象允许Geometry对象可视组件组合的创建比在PathGeometry内严格的使用PathFigure对象更加简单。
ImageSource是抽象类,包括用于图像处理的基本构建单元。ImageSource概念上表示在特定大小和分辨率下单个恒定的象素集合。例如,ImageSource可以是Decoder可以提供的图形文件中的单个帧,或可以是对特定的ImageSource自身进行操作的转换结果。ImageSource是可变的,不仅因为它自身的属性可以改变,也因为它的子类的属性也可能改变。
提供Transform类的对象用于缩放、旋转、平移和扭曲矢量和栅格图形。导出的Transform类提供友好的用法和枚举语义。
Effects提供以呈现为中心的方式更改场景的可视内容的方法。例如,VisualEffects(基于栅格的位图效果)操作基于图像的、完全合成的部分场景的表示。Effects划分为各种类型,包括VisualEffects、BlendModes和VectorEffects。通过对子图形或元素应用VisualEffects,它可以用在保留模式场景中,或它可以用在单独的图像管线中。BlendModes是基于图像的效果的具体形式,且能够以和VisualEffects大致相同的方式将其应用于保留模式的场景。当源是合成的,如相乘或相加时,Blend模式执行源和目标颜色的合并。
点击测试被用于挑选场景中的可视组件,并通过从控件树的顶部开始,并通过由一个点或几何形状返回一个控件或一组控件来进行操作。控件可以用支持服务确定它是否被点击,支持服务包括呈现的几何图形、边框、范围外的几何图形(点击区域)、图像不透明度或遮蔽,及其自身的逻辑。在点击到时,控件可以返回特定的有关点击的数据。点击测试机制可以用有效的方式过滤点击测试结果。点击测试途径是可视组件树中从右到左的很深的途径,通过以z顺序,从上到下的方式进行回调来报告点击。当向下降时,点击测试器借助元素层次关系查看过滤,例如,有形状的画布,或有内部画布的泊放面板。当发生点击时,点击测试器可以进一步继续处理点击(如果有的话),或停止。
提供动画系统,它包括定时控件引擎和一组动画对象。定时引擎是可由具有随时间而变化行为的任何对象,如动画和音频或视频媒体对象使用的服务。动画对象实现将时间段跨度映射到其他数据类型然后将其用作其他高层对象的输入的一组功能。通过关联动画集合与呈现操作来实现图形动画。在呈现操作中使用的每个动画可以按称为“时间线”的独立时钟来运行。一旦画出了动画原型且指定了动画参数,低层呈现系统以固定的时间间隔处理场景的重画。每次呈现帧时,就基于经过的时间(在多数情况下由系统时钟来测量)对包括在场景中的动画的当前值进行计算,然后重画该动画原型。
也通过MIL提供各种原语类型、颜色特性和媒体支持。MediaData可以用来播放任何音频/视频内容。
设计名字空间
设计名字空间320提供支持表单和文本编辑、格式化数据及跨进程数据共享的类。这些类提供用于编辑文档、应用和其他内容的可扩展框架。设计名字空间320包含两个层次上的功能:面向需要预打包的对不同类型的信息的即刻可用的编辑器的应用开发者的高层功能;及面向引入它自身类型的数据的更加高级的应用的低层功能。作为示例的预打包的即刻可用的编辑器提供纯文本编辑、丰富格式文本编辑、表单(元素布局)编辑和密码输入。
设计名字空间320提供灵活且可扩展的方法来组织各种功能。设计名字空间320提供服务、行为和抽象的组合来允许开发者构建专门且易于客户化的信息编辑解决方案,而不是提供普通的固定特性的编辑器。设计名字空间320包括几个可定制的编辑特性,包括:范围服务、可堆放行为、编辑器-设计器模式、用于元素编辑的抽象设计器、抽象文本对象模型、修饰层、设计表面、通用数据传输协议,及可扩展的撤消机制。
有范围的服务允许将特定服务和应用数据的特定部分和子部分关联。此机制也允许在不同的范围内打开或关闭服务。提供服务支持的主要类是ServiceManager;使用IService和IScopeService接口来实现单独服务。
“可堆放行为”的概念允许在适当的时间段激活不同的行为。在一个实施例中,嵌套基于时间的行为激活,使得在更一般的进程暂时挂起并随后恢复的同时可以开始和结束子进程。可堆放行为的方法通过允许集成预先对彼此不了解的进程解决了这个问题,而不采用硬编码解决方案。提供对此机制的支持的主要的类是EditRouter;单独行为是Eidtor和EditBehavior类的子类。可编辑数据的内置类型由EditBehavior的对应子类支持,如TextEditor、ElementEditor和MoveBehavior。
“编辑器-设计器模式”的概念允许分离通用的编辑功能和更加具体的可编辑信息的子类型。编辑器不期望操作特定的数据结构。相反,它假设使用通过某些抽象接口展现数据内容,隐藏实现细节,但是对于编辑交互的对应动作已经足够了。此模式对元素(在表单编辑中)和文本(在丰富格式文本编辑中)特别有用。
“元素编辑的抽象设计器”是用于元素编辑(如,表单编辑)的领域的“编辑器-设计器模式”的应用。各种元素可以有不同的内部结构、外观和行为,但是如果它们展现某些用于移动、旋转或重设大小标准的“设计器”,则它们变得由元素编辑器可编辑。
抽象文本模型是用于丰富格式文本编辑的“编辑器-设计器模式”的另一个应用。此抽象允许不同的后备存储来参与丰富格式文本编辑,如RTF、XHTML、纯文本、XAML标记、按语法进行强调的源代码等等。即使这些文本类型的语义本质和内部结构有所不同,通过经抽象文本模型展现自身,它们支持通用编辑机制的应用。另外,此方法支持文本和数据集成,从而来自不同后备存储的文本可以包含彼此的片段,同时提供无缝的编辑操作。
修饰层是在编辑中提供丰富可视反馈的统一工具。修饰层对多种类型反馈提供统一的支持。强大的可视组件可以动态地与元素及数据的其他部分连接和分离来指出可能的作用于它们的用户活动。设计表面是预打包编辑资源(如修饰层和编辑路由器)的XAML控件。这简化了中间层次的编辑开发。
如剪切/复制/粘贴和拖/放这样的编辑功能在集成的信息环境中是很重要的,但是可能由于不同数据类型的复杂性和不兼容而难以支持。通用数据传输协议通过提供用于数据抽取、数据插入、数据拖动和数据转换的抽象组合来处理此问题。这个通用的数据传输协议对应用数据集成提供强大和灵活的机制。
可扩展的撤消机制通过收集各种类型的数据来管理撤消栈。撤消管理器包括处理具有不同数据类型的撤消操作的协议。
下面的表列出由System.Windows.Design名字空间展现的例子成员。
  类
  ActivationEventFilter   事件过滤器。
  ActivationRectangleAdornerInfo   这是示出DesignActive元素边界的反馈。
AdornerInfo   提供有关修饰器集合中的特定修饰器的信息。
AdornerLayer   提供用于显示需要超越Z顺序(元素总是需要在顶上)的元素上的修饰的表面。
  CanvasDesigner   缺省的Canvas设计器。
ComponentChangeService   提供用于影响组件的设计时动作的撤消和重做功能。
  Designer   提供编辑活动内容的方法。
DesignerFilterService   定义可选的服务,使应用和控制可以用它来实现覆盖由DesignerLookupService提供的元素和设计器之间的缺省映射。
  DesignerLookupService   支持映射元素到设计器的编辑行为。
DesignSurface   推荐的对可编辑内容根元素。它聚合了修饰器、服务和事件。
  EditBehavior   定义所有编辑行为的实现。
Editor   处理用户对特殊选择类型,如文本、元素或表的输入。通常对每种选择类型都有特定的编辑器。
EditorTypeAttribute   关联选择类型和选择模式。不能从这个类继承。
  EditRouter   管理当前活动的EditBehavior的集合。
  EditRouterChangedEventArgs   Changed事件的参数。
  ElementEditor   元素编辑器。
  EventFilter   支持事件过滤和分配。
FrameworkElementDesigner   对所有从FrameworkElement导出的控件的缺省Designer。
  MoveBehavior   移动行为。
  ObjectSelection   位置选择。
 ParentUndoUnit  ParentUndoUnit
RichTextDesigner  TextPanel和支持ITextDocumentResult的其他控件的ITextDesigner实现。
RoutedEventAdapter  RoutedEventAdapter将特定的eventHandler向下转换为RoutedEventHandler从而一个处理程序可以处理不同类型的事件。由EditRouter使用。
SelectionRouter  SelectionRouter控制与多种选择模式的混合选择。它从EditRouter导出以路由事件到模块编辑器(它从Editor导出)。
SelectionService  提供对UI项的选择的编程访问。可以在选择的项上获得反馈,并更改选择的项及其属性。
ServiceConverter  ServiceConverter-用于在字符串和IService的实例之间进行转换的转换器类。
SimpleTextDesigner  用于Text和支持ITextParagraphResult的其他控件的ITextDesigner实现。
TextDecorator  TextDecorator定义管理来自竞争服务的文本修饰的对象。使用TextDecorator而非私自写入属性值来确保竞争的修饰将永不重叠,甚至在有相同优先权的情况下。
 TextEditor  提供文本选择服务。
TextSelection  TextSelection类封装对TextEditor类的选择状态。它没有公共的构造器,而是通过TextEditor上的公共属性展现。
 UndoService  IUndoService的框架实现。
 UndoStackChangedEventArgs  向UndoStackChanged和
  RedoStackChanged事件提供数据。
 接口
IAddRemoveChildDesigner   IAddRemoveChildDesigner接口用于增加/移除子元素。
IAdornerDesigner   提供对支持检索在FrameworkElement上画出修饰器所需的对象的方法的访问。
IDesignActivationContainer   DesignActivation  中可以变为designActive的内部元素。具有名字容件,因为假设如果元素是DesignActive,那么它很可能正在编辑某些子内容。
IDesignActivationContainerParent   IDesignActivationContainerParent可能是设计环境中的宿主IDesignActivationContainer。
IDesignSurface   由希望参与编辑的任何元素实现的接口。
 IMoveDesigner   移动设计器接口。
 IParentUndoUnit   IParentUndoUnit接口。
 IScopedService   IScopedService。
 ISelection   选择模式的基础接口。
ISelectionDesigner   和SelectionBehavior(SelectionRouter)关联的设计器接口。实现此接口的类可以在元素类型的Designer属性中指定。
IService   这是用于编辑服务的TypeConverter的占位者。
ITextDesigner   向TextEditor服务提供特定于布局的信息和动作的接口组件实现。
  IUndoService   IUndoService接口。
  IUndoUnit   IUndoUnit接口。
  枚举
  AdornerInfoZOrder   Z顺序标志。
  AdornerRenderTriggers   指出使修饰器重新呈现的条件的标志。
  EditRouterChange   可能的路由改变动作的枚举。
TextDecorationPriority   TextDecorationPriority对各种文本标记的相对重要性进行排序。它用于TextDecorator类中的Z顺序修饰。
  UndoState   撤消管理器的状态的枚举。
  代理
UndoStackChangedEventHandler   表示处理UndoStackChanged  或RedoStackChanged事件的方法。
输入名字空间
输入名字空间322包括协调由系统接收的输入的输入管理器。输入名字空间322也包括帮助管理不同的输入设备,如键盘或鼠标并对其提供控制的类。输入系统允许应用从如鼠标、键盘和触针(笔)这样的输入设备取得信息。多数输入功能以System.Windows  名字空间中的UIElement、FrameworkElement、ContentElement和ContentFrameworkElement类的属性、方法和事件的形式存在。UIElement和ContentElement有类似的输入功能,这由IInputElement接口获取。类似地,FrameworkElement和ContentFrameworkElement分别从UIElement和ContentElement导出,它们共享很多输入API且两者都实现IFrameworkInputElement。
输入系统提供对键盘、鼠标和触针的完整支持。键盘功能包括键按下/键弹起事件、焦点管理和通知、访问当前的键状态,和转换击键为输入字符串。鼠标功能包括鼠标位置、点击、移动、在元素边界件的进入/离开事件、鼠标捕捉、悬停和鼠标滚轮。触针功能包括位置和移动(笔接触表面和“在空中”均可)、轻按/点击、捕捉和姿势识别。
输入名字空间包含上述功能所需的辅助器类,如枚举、事件参数、代理签名等等。另外,输入名字空间包括Keyboard、Mouse和Stylus类,它们提供有关那些设备的当前状态的信息。输入系统提供方法,指定在特殊元素上以及对整个应用的鼠标光标。
输入系统和文本服务框架(TSF)集成,TSF允许其他输入软件理解输入新文本到其中的文本环境。这由输入方法编辑器(IME)使用,IME允许东亚语言的用户转换多个击键为单个字符-IME软件和TSF通讯以基于上下文识别击键的最佳翻译并使用TSF来插入文本到文档中。类似地,语音识别使用TSF来挑选最佳识别并将其插入文档。
输入系统以TextInput事件的形式提供与TSF的自动集成。输入名字空间也提供API用于描述文本环境,及控制从原始键盘输入到文本输入的转换。InputManager类提供过滤器和监控器,它们允许第三方观察输入流并在触发初始输入事件之前创建新的输入事件。InputManager也使用IInputProvider和InputReport提供用于被插入输入系统的新设备的API。
下面的表列出由System.Windows.Input名字空间展现的例子成员。
  类
AccessKeyManager   AccessKeyManager展现访问键功能,也称为助记符。典型例子是Ok键,Alt-O作为它的助记符-按下Alt-O和点击该按钮效果相同。
  Cursor   表示所使用的鼠标光标。
  CursorTypeConverter   在鼠标光标和字符串之间进行转换
FocusChangedEventArgs   FocusChangedEventArgs类包含有关焦点改变的信息。
  InputDevice   提供所有输入设备的基础类。
InputEventArgs   InputEventArgs类表示和所有的输入事件有关的一种RoutedEventArgs
InputLanguageChangedEventArgs   InputLanguageChangedEventArgs类表示和指示(人的)输入语言的改变而触发的事件有关的一种RoutedEventArgs。
InputLanguageChangingEventArgs   InputLanguageChangingEventArgs类表示和指示(人的)输入语言的改变而触发的事件有关的一种RoutedEventArgs。
InputLanguageEventArgs   InputLanguageEventArgs类表示和指示(人的)输入语言的改变而触发的事件有关的一种RoutedEventArgs。
InputLanguageManager   InputLanguageManager类负责管理Avalon中的输入语言。
InputManager   InputManager类负责协调“Avalon”中的所有输入系统。
InputMethod   InputMethod类展现有关TSF的API,它发送或访问TIP的属性。
InputMethodStateChangedEventArgs   当输入方法编辑器(IME)改变其状态时使用此InputMethodStateChangedEventArgs类。
InputProviderSite   输入提供者用来报告对输入管理器的输入的对象。
InputReport   InputReport是向InputManager报告的所有输入的抽象基础类。
InputReportEventArgs   提供在处理InputReport时触发的事件的数据。
  Keyboard   Keyboard类展现涉及键盘的API。
KeyboardDevice   KeyboardDevice类表示对上下文成员的键盘设备
KeyboardEventArgs   KeyboardEventArgs类对所有导出的事件的参数提供对逻辑指针设备的访问。
KeyEventArgs   KeyEventArgs类包含有关键状态的信息。
  KeyInterop   提供在Win32虚拟键和“Avalon”键枚
  举之间进行转换的静态方法。
  Mouse   Mouse类展现涉及鼠标的API。
MouseButtonEventArgs   MouseButtonEventArgs描述鼠标按钮的状态。
MouseDevice   MouseDevice类表示对上下文成员的鼠标设备。
  MouseDoubleClickEventArgs   提供双击鼠标时触发的事件的数据。
MouseEventArgs   MouseEventArgs类对所有导出的事件的参数提供对逻辑鼠标设备的访问。
MouseWheelEventArgs   MouseWheelEventArgs描述鼠标滚轮的状态。
NotifyInputEventArgs   提供有关由输入管理器处理的输入事件的信息。
  PreProcessInputEventArgs   允许处理程序取消对输入事件的处理。
  ProcessInputEventArgs   提供对输入管理器的分级区域的访问。
RawKeyboardInputReport   RawKeyboardInputReport类封装从键盘提供的原始输入。
RawMouseInputReport   RawMouseInputReport类封装从鼠标提供的原始输入。
StagingAreaInputItem   这个类封装在由输入管理器处理时的输入事件。
TextInputEventArgs   TextInputEventArgs类包含输入的文本表示。
TextManager   TextManager类提供输入到文本事件提升。
TextServicesContext   这个类管理UIDispatcher和文本服务框架之间的互操作,使能作东亚语言IME输入的本地COM API。
  TextStoreInfo   这是内部的链接需求保护类。
  接口
  IInputLanguageSource   控制输入语言源的接口。
  IInputProvider   由所有输入提供者实现的接口。
  IKeyboardInputProvider   用于控制键盘输入提供器的接口。
  IMouseInputProvider   用于控制鼠标输入提供器的接口。
  枚举
  CursorType   所支持的光标类型的枚举。
  ImeConversionMode   ImeConversionMode
  ImeSentenceMode   ImeSentenceMode
  InputMethodState   Ime的状态。
  InputMode   当提供输入时的输入处理的模式。
  InputType   所报告的输入的类型。
  Key   键盘上所有可能的键值的枚举。
  KeyState   KeyState列举描述键盘上的键可能所处的状态。
  ModifierKeys   ModifierKeys枚举描述用于修改其他输入操作的一组通用键。
  MouseButton   MouseButton枚举描述鼠标设备上的可用按钮。
  MouseButtonState   MouseButtonState枚举描述鼠标输入设备上可用按钮的可能状态。
  RawKeyboardActions   从键盘报告的原始动作。
  RawMouseActions   从鼠标报告的原始动作。
  SpeechMode   语音模式。
  结构
  TextServicesMSG   Win32MSG结构的管理的版本。
  代理
FocusChangedEventHandler   用于接收FocusChangedEventArgs的处理程序的代理。
InputEventHandler   用于接收InputEventArgs的处理程序的代理。
InputLanguageEventHandler   对InputLanguageChanged和InptLanguageChanging事件的代理。
 InputMethodStateChangedEventHandler   用于接收输入方法状态改变事件的处理程序的代理。
InputReportEventHandler   用于接收PointerMoveEventArgs的处理程序的代理。
KeyboardEventHandler   用于接收KeyboardEventArgs的处理程序的代理。
KeyEventHandler   用于接收KeyEventArgs的处理程序的代理。
MouseButtonEventHandler   用于接收MouseButtonEventArgs的处理程序的代理。
MouseDoubleClickEventHandler   用于接收MouseDoubleClickEventArgs的处理程序的代理。
MouseEventHandler   用于接收MouseEventArgs的处理程序的代理。
MouseWheelEventHandler   用于接收MouseWheelEventArgs的处理程序的代理。
NotifyInputEventHandler   用于处理使用NotifyInputEventArgs的事件的代理类型。
PreProcessInputEventHandler   用于处理使用PreProcessInputEventArgs的事件的代理类型。
ProcessInputEventHandler   用于处理使用ProcessInputEventArgs的事件的代理类型。
 TextInputEventHandler   用于接收TextInputEventArgs的处理
  程序的代理。
导航名字空间
导航名字空间324提供允许构建有浏览方案的应用,如浏览器应用的一组类和服务。这些类和服务允许开发带有客户化的导航操作的应用。例如,当从网上商家购买产品或服务时,点击“返回”按钮使得应用显示不同的页面,询问用户是否希望取消或改变他们的订单。在另一个例子中,激活“刷新”按钮使得应用软件检索新的数据而不是首先重新加载该应用软件接着再检索新数据。导航名字空间324也包括用于提供产生向用户提供的问题层次的机制的页函数。
下面的表列出由System.Windows.Navigation名字空间展现的例子成员。
 类
 BoolWrapper   Boolean值的包装器。
BoolWrapperPageFunction   返回Boolean值到前一页的有类型的页函数。
 BoolWrapperReturnEventArgs
 IntWrapper   Int32值的包装器。
IntWrapperPageFunction   返回Int32值到前一页的有类型的页函数。
 IntWrapperReturnEventArgs
 Journal   包含应用软件的导航历史。
 JournalEntry   表示日志条目。
LoaderService   用来在给定的应用领域中设置当前的加载器。
 NavigateEventArgs   已废弃。
NavigatingCancelEventArgs   对NavigationApplication.Navigating和NavigationWindow.Navigating事件的事件参数。
 NavigatingNewWindowCancelEven   可取消事件NavigatingNewWindow的事
  tArgs   件参数。NavigatingNewWindowCancelEventArgs指定目标NavigationContainer,在其中用传入的URI或元素进行导航。缺省的Cancel属性设置为假。设置Cancel为真将防止打开新窗口,且不进行导航。
  NavigationApplication   表示对系统的“Longhorn”导航应用。
NavigationContainer   可以包含“Avalon”标记树的可浏览区域。通常,不直接使用这个类但是可以将其用作对客户实现的父类。
NavigationErrorCancelEventArgs   包含对NavigationApplication.NavigationError和NavigationWindow.NavigationError事件的参数。
NavigationEventArgs   不可取消导航事件,包括LoadCompleted、LoadStarted、Navigated和NavigationStopped的事件参数。
NavigationProgressEventArgs   包含对NavigationApplication.NavigationProcess和NavigationWindow.NavigationProcess事件的参数。
NavigationService   包含由导航事件使用的代理和包含INavigator接口的动态属性。
  NavigationWindow   表示一导航窗口。
ObjectPageFunction   返回Object值到前一页的有类型的页函数。
  ObjectReturnEventArgs
PageFunction   不直接支持这个类。而是使用下面有类型的类之一:BoolWrapperPageFunction、IntWrapperPageFunction、ObjectPageFunction或StringPageFunction。
ReturnArgs   对返回事件的事件参数对象。不直接支持这个类。而是对适合的有类型的类使用返回参数,这些类是:BoolWrapperReturnEventArgs、IntWrapperReturnEventArgs、ObjectReturnEventArgs或StringReturnEventArgs。
StringPageFunction   返回String值到前一页的有类型的页函数。
  StringReturnEventArgs
  WindowNavigationContainer   表示导航窗口内的可导航区域。
 接口
IJournalData   IJournalData接口-应由需要在日志中持续状态的控件实现,并在重新访问该页时恢复它。
ILoader   用于分解URI为流的接口。它可以用于从文件、http、容件及管理的和未管理的资源加载内容。
INavigator   由浏览容件实现以提供对支持导航的属性、方法和事件的访问。
INavigatorService   INavigatorService接口。此接口在支持INavigator任何的实现者注册它们自己以参与Hyperlink指向的NavigationWindow上可用。
  枚举
  NavigationMode   用于指定导航模式。
  代理
  BoolWrapperReturnEventHandler
  IntWrapperReturnEventHandler
LoadCompletedEventHandler   表示处理NavigationApplication.LoadCompleted和NavigationWindow.LoadCompleted事件的方法
  LoadStartedEventHandler   表示处理LoadStart事件的方法。
NavigatedEventHandler   表示处理NavigationApplication.Navigated事件和NavigationWindow.Navigated事件的方法。
  NavigateEventHandler   已废弃。
NavigatingCancelEventHandler   表示处理NavigationApplication.Navigating和NavigationWindow.Navigating事件的方法。
  NavigatingNewWindowCancelEventHandler   表示处理NavigatingNewWindow事件的方法。
NavigationErrorCancelEventHandler   对NavigationApplication.NavigationError事件和NavigationWindow.NavigationError事件使用此代理。
  NavigationProgressEventHandler   表示处理NavigationApplication.NavigationPr
  ogress和NavigationWindow.NavigationProgress事件的方法。
NavigationStoppedEventHandler   表示处NavigationApplication.对NavigationWindow.NarigationProgress和NavigationApplicationNarigationProgress事件NavigationStopped和NavigationWindow.NavigationStopped事件的方法。
  ObjectReturnEventHandler
ReturnEventHandler   表示处理Return事件的方法。不直接支持这个类。而是使用适当的有类型的类的返回事件处理程序,这些类是:BoolWrapperReturnEventHandler、IntWrapperReturnEventHandler、ObjectReturnEventHandler或StringReturnEventHandler。
  StringReturnEventHandler
自动化名字空间
自动化名字空间326包含用于支持可访问性及用户接口自动化的成员。可访问性系统包括客户端和提供者端。工具的系统包括客户端自动化工具,客户端自动化工具包含用于搜索用户接口信息的客户自动化类。客户自动化类包括事件注册工具和逻辑元素发现工具。这组工具进一步包括用于向客户提供用户接口信息的提供者端自动化工具。提供者端自动化工具包括用于向客户提供事件信息的工具的自动化提供者类。
客户自动化类提供用于一个或多个客户的UI自动化方法。客户自动化类包含不特定于任何UI元素的方法。客户自动化类可以提供从点、窗口句柄或桌面根元素获取逻辑或原始元素的方法。客户自动化类还可以提供基于输入准则的查找逻辑元素的方法。客户自动化类最好还包括注册和注销事件通知的方法。自动化类最好还提供用于加载代理DLL、检索本地化的属性名称和控件模式并执行元素比较的辅助函数。客户自动化类也包括由客户用来侦听事件的方法。下面的表列出由System.Windows.Automation名字空间展现的例子成员。
Figure C20041007850400751
Figure C20041007850400761
Figure C20041007850400771
Figure C20041007850400781
  枚举
AutomationPermissionFlag   包含AutomationPermission对象的访问标志。
  ChildArrangement   安排子元素的不同方法。
  DockPosition   可泊放窗口所附着的容件边缘。
ExpandCollapseState   由ExpandCollapse模式使用来指出扩展的/折叠的状态。
  GetDataOptions   GetData的选项。
HierarchyItemState   指出层次项状态的枚举,层次项状态包括:折叠、扩展或部分扩展。
ItemCheckState   指出复选框、单选按钮和类型控件状态的枚举。
  LoadState   树状态标志。
LogicalMapping   指出是否在逻辑树中显示原始树中的节点的值。
  ProxyFlags   用于指出请求属性的结果的枚举。
RowOrColumnMajor   在表中的数据最好按行表示还是按列表示。
  ScopeFlags   在侦听事件时用于定义范围的标志。
ScrollAmount   由ScrollPattern使用来指示滚动方向(向前或向后)和滚动量(页或行)。
SendMouseInputFlags   SendMouseInput的标志。这些标志表明是否发生了移动或是否按下或释放了按钮。
  SplitStyles   分裂窗口的方向的标志。
  StructureChangeType   指出逻辑树结构改变的标志。
TextPointerGravity   Gravity确定当在AutomationTextPointer插入文本时AutomationTexPointer的位置。Gravity总是从文本指针的视角出发,即,我在我的字符前面或我在我的字符后面。当用户在文本指针的位置插入字符时,Before意味着指针将放在新字符的前面;After意味着指针将放在新字符的后面。
  WindowChangeType   指出顶层窗口的改变的标志。
  WindowInteractionState   用于用户交互的窗口的当前状态。
WindowVisualState   用来描述窗口可视状态的状态。WindowVisualState遵循Office和HTML对WindowState的定义。
  结构
MatchCondition   指定使用FindLogicalElement或FindRawElement查找元素的准则。
  NameAndData   包含作为对象的名字、数据及作为字符
  串的数据。
  ProxyDescription   包含有关代理的信息的结构。
  SortInformation   用来排序的信息。
  代理
  AutomationEventHandler   处理AutomationEvent的代理。
  AutomationFocusChangedEventHandler   处理焦点改变事件的代理。
  AutomationPropertyChangedEventHandler   处理自动化属性改变事件的代理。
  LogicalStructureChangedEventHandler   处理逻辑结构改变事件的代理。
ProxyFactoryCallback   由HWND处理程序实现;由UI自动化框架调用来请求对指定窗口的代理。如果支持的话应返回一代理,或在不支持的情况下返回空。
  TopLevelWindowEventHandler   处理顶层窗口事件的代理。
下面的表列出由System.Windows.Automation.InteropProvider名字空间展现的例子成员。
 类
 AutomationInteropProvider  包含由实现用户接口(UI)自动化的Win32应用或控件使用的方法。不能从这个类继承。
 TextPointerPair  表示连续的字符块。
 接口
 IApplicationWindowInteropProvider   展现通常和顶层应用窗口关联的行为和信息。
 IAssociatedInformationInteropProvider   展现表示其他对象的UI元素的语义和源数据。
IDockInteropProvider   展现元素在运行时改变其泊放状态的能力。
IExpandCollapseInteropProvider   展现扩展来显示更多内容或折叠以隐藏内容的控件能力。和TreeView项上的HierarchyItem模式相结合受到支持来提供类似于树的行为,但是也与打开和关闭的单个控件相关。实现此能力的UI例子包括:TreeView项、折叠的Office的智能菜单、工具栏上的人字纹、组合框、菜单、Windows资源管理器的任务栏的“扩展项”(通常显示文件夹视图的左边)。
IGridInteropProvider   展现基本的网格功能:改变大小和移动到指定单元格。
 IGridItemInteropProvider   表示网格内的项。没有方法,只有属性。
IHierarchyItemInteropProvider   独立于它们在the逻辑树中的关系展现并允许客户穿过UI元素之间的层次关系。层次关系从定义上来说就是非循环的。实现此功能的UI例子包括:TreeView项、Viso组织结构图、菜单及在“以分组显示”方式有效时的Listview控件。
IInvokeInteropProvider   由执行单个明确动作的对象(控件)实现。这些控件中的大多数不保持状态:引用它们起动应用中的一个动作。实现此接口的用户接口元素的例子包括按钮、工具栏按钮、菜单项、超级链接、复选框、单选按钮、树形视图控件中的加号,及Windows资源管理器中的列表
  视图项。
IMultipleViewInteropProvider   展现元素在同一组信息、数据或子元素的多种表示之间切换的能力。此模式应在控制内容当前视图的容件上实现。
IRangeValueInteropProvider   展现反映控件管理有限范围内的值的能力的一组相关属性。它传递控件的有效最小值和最大值及其当前值。例子:数字旋转器进度条(NamericSpimerProgressBar)、(在单个八位组上的)IP控件、某些拾色器滚动条(ColorPickersScrollBar)、某些滑动器的公共接口,它们表示表达当前值和值范围的UI元素。公共接口具有和IValueProvider相同的定义。两个模式的区别是RangeValue有附加属性,属性通常不出现在模式公共接口中。
IRawElementProviderFragment   由提供者实现以展现作为深度不止一层的结构的部分的元素。对没有子元素的简单单层结构,可以使用IRawElementProviderSimple。片段的根节点应支持IRawElementProviderFragmentRoot接口,它从此接口导出,并具有一些附加的方法。
IRawElementProviderFragmentRoot   UI片段中的根元素应支持此接口。同一片段中的其他元素需要支持IRawElementProviderFragment接口。
IRawElementProviderFragmentRootAdviseEvents   在UI片段的根元素上实现,以允许它在需要它来触发自动化事件时得到通知。
IRawElementProviderHwndOverride   由需要提供有关所包含的基于HWND的元素的信息或需要对其进行重定位的提供者实现。
IRawElementProviderOverrideType   由需要提供有关所包含的基于HWND的元素的信息或需要对其进行重定位的提供者实现。
IRawElementProviderSimple   UIAutomation提供者接口,由希望展现单个元素属性的提供者实现。为了展现多于一个元素的属性和接口,参见导出的IRawElementProviderFragment接口。
IScrollInteropProvider   Scroll模式展现控件通过滚动其内容改变其对用户可视的可视区域部分的能力。例子Listbox、TreeView及维持大于控件可视区域的内容区域的其他容件。注意滚动条自身应不支持Scrollable模式;它们支持RangeValue模式。服务器应归一化滚动(0到100)。这个公共接口表示滚动其内容的UI元素。
ISelectionInteropProvider   提供对由非“Longhorn”提供者在管理选择的容件上实现的属性的访问。
ISelectionItemInteropProvider   提供对定义和处理容件中选择的项的方法和属性的访问。仅在作为支持ISelectionInteropProvider且它自身是可选择的元素的子元素的逻辑元素上支持此接口。
ISortInteropProvider   展现容件的当前排序顺序并允许客户程序地对其元素重排序。某些容件在插入新项时保持排序顺序,或基于更新的内容移动其内容(例如,排序的Win32
  列表框)。其他容件只能够执行一次性排序那在插入新项目时已过时(例如,Excel)。
ISplitInteropProvider   展现将元素内容区域分裂为多个格子或交互区域的能力。
  ITableInteropProvider   标识有标题信息的网格。
  ITableItemInteropProvider   用来展现有标题信息的网格项。
ITextInteropProvider   Text模式展现控件处理文本的能力。例如:TextBox、RichEdit控件及包含文本和文本相关属性的其他容件。此接口表示保持文本的UI元素。
ITextPointerInteropProvider   Text模式展现控件处理文本的能力。例如:TextBox、RichEdit控件及包含文本和文本相关属性的其他容件。此接口表示保持文本的UI元素。
  IValueInteropProvider   表示表达一值的UI元素的公共接口。
  IVisualInformationInteropProvider   用来表达有关向用户传达信息的图形或动画的信息。
IWindowInteropProvider   展现元素改变其在屏幕上的位置或大小及改变可视状态和关闭它的能力。
IZoomInteropProvider   展现控件中的当前缩放水平并允许客户按程序改变它。
  枚举
  NavigateDirection   导航UIAutomation树的方向。
  RawElementProviderOverrideType   指出此提供者是否作为覆盖者或是作为非客户区域提供者。
序列化名字空间
序列化名字空间328提供从XML文件或二进制表示的文件中加载对象(如元素)的层次结构或将对象的层次结构保存到其中的解析器。此处理也设置和对象相关的属性并关联诸事件处理程序。进一步来说,序列化名字空间328提供序列化和反序列化对象的功能。序列化是采用对象的活动的存储器中的表示,并产生适合于保存到存储设备(如硬盘)或通过网络发送的数据流。反序列化是反向的处理:即,取得数据流并从该数据流产生对象。反序列化亦称为“解析”,且实现解析的代码被称为解析器。
序列化和反序列化两者都支持多种流格式,如称为XAML的XML格式或称为BAML的二进制格式。当解析器和标记编译器一起使用时,它可以产生“CAML”,其中输出是产生序列化对象的代码。
序列化和反序列化支持全面的XAML特性,包括:标准语法、复合属性、紧凑的复合语法、隐含的子元素语法、显式的子元素语法、有明确集合标签的集合语法,及有隐含集合标签的集合语法。序列化和反序列化两者都是完全可扩展的。类可以通过下面几种机制定义它们希望如何序列化和反序列化,如:
●缺省地,类名称作为标记标签名称处理,而属性和事件作为同一名称的标记属性处理。
●类定义类型转换器(从System.ComponentModel.TypeConverter导出的辅助对象)以便序列化和反序列化标记属性值。
●类可以通过实现IAddChild接口(解析)和使用CLR属性支持隐含的子类以描述如何序列化隐含的子类。
●类可以通过使用DesignerSerializationVisibility控制是否可以序列化/反序列化属性,并通过使用DefaultValueAttribute和ShouldPersist方法控制是否需要序列化特殊对象上的属性。
●或者,组件可以使用字面内容序列化/反序列化其自身,在此情况组件的序列化形式不必符合XAML的规则(组件必须为格式良好的XML)。虽然上述例子使用了单词“标记”,同样的概念可以应用于二进制格式(BAML)。
第二个可扩展的机制是“设计器挂钩”,它允许插入另一段代码到序列化器和反序列化器中,并在解析和序列化过程中插入和截取属性。此机制允许创建新的标记特性,并允许现有语法的客户处理。标记编译器使用设计者挂钩来产生CAML。
序列化和反序列化支持各种对象(如,任何从System.Object导出的类)。从System.Windows.DependencyObject导出的类可以定义依存关系属性,它们得到两个额外特性:
●序列化可以自动地分辨是否需要序列化属性(对DefaultValueAttribute/ShouldPersist不需要)。
●解析器可以执行特定的优化以更快地加载。
序列化和反序列化支持XML名字空间和映射XML名字空间到CLR名字空间的定义文件。Mapper类允许定义任意的从XML名字空间和标签名字到CLR类的映射。
下面的表列出由System.Windows.Serialization名字空间展现的例子成员。
Figure C20041007850400881
Figure C20041007850400891
Figure C20041007850400901
Figure C20041007850400911
  接口
  IAddChild  IAddChild接口用于解析允许对象或文本出现在不直接映射到属性的标记中的标签之下的对象。
  IBamlSerialize  写入BAML文件的动态属性的序列化接口。
  ILoaded  此接口提供只读的称为IsLoaded的布尔属性,CLR事件处理程序调用Loaded、DeferLoade和EndDeferLoad方法。
  IPageConnector  提供由BamlReader对已编译的内容内部使用的方法。
  IParseLiteralContent  用于LiteralCont ent-有其自身的解析器和保存器的内容。
  IUriContext  IUriContext接口向元素(如Frame、PageViewer)和类型转换器(如ImageDataTypeConverter)提供确保解析器在其上设置基础URI,及XAML、BAML和CAML情况的代码生成的方法。
  枚举
  LayoutType   可以和Object关联的布局类型。
SerializationAction   描述序列化器或反序列化器在它回调CustomXamlSerializr或CustomXamlDeserializer辅助类之后所采取的动作。
SerializationErrorAction   描述序列化器或反序列化器在报告错误时采取的动作。
  XamlNodeType   XamlNode的标识符。
互操作名字空间
互操作名字空间330提供一组支持和其他操作系统或计算平台进行互操作的类。下面的表列出由System.Windows.Interop名字空间展现的例子成员。
  类
ApplicationProxy   Application类上的MarshalByRefObject包装器,允许跨AppDomain和Application对象交互并允许在不同的线程上创建Application。
DocobjHost   实现用于浏览器寄宿的Docobj服务器的管理的部分的互操作类。
  PresentationInteropHelper   VisualInteropHelper
WindowInteropHelper   实现Avalon WindowsInteropHelper类,它有助于B/W遗留系统和Avalon窗口之间的互操作。
 代理
 AppEntryPoint   应用代码入口方法的代理。
Forms.Interop名字空间
Forms.Interop名字空间332提供允许应用寄宿表单控件操作的元素。
System.IO.CompoundFile名字空间
另一个名字空间,System.IO.CompoundFile(未在图3中示出)提供利用在其中存储各种文档可分发文件的复合文件的服务。这些服务用于内容的加密和压缩。这些服务也支持存储同一内容的多种表示,如可重设流的文档和固定格式的文档。下面的表列出由System.IO.CompoundFile名字空间展现的例子成员。
  类
  CertificateHelper   取得签名数字证书的辅助类。
  CompoundFileByteRangeReference   引用复合文件流内的字节范围的子流引用组件。
CompoundFileIndexReference   引用复合文件流内的逻辑入口的子流引用组件。
  CompoundFileReference   对复合文件的一部分的引用。
  CompoundFileReferenceCollection   复合文件引用的只读集合。
  CompoundFileStorageReference   对容器存储的逻辑引用。
  CompoundFileStreamReference   对容器流的逻辑引用。
  CompressionTransform   用在复合文件数据空间中的压缩转换。
ContainerHelper   此类使得用户可以基于加载的Application实例获取对StorageRoot当前容器的访问。
DataSpaceManager   用于处理“Avalon”容器的特定实例内的数据空间。这就是数据转换模块插入容器来支持类似的数据压缩和数据加密的方式。
DigitalSignature   支持客户检查和校验现有数字签名的只读类。
  DigitalSignatureCollection   数字签名的只读集合。
  DigitalSignatureManager   这个类用于在复合文件中创建、持续存
  储和处理数字签名。
DocumentSummaryInfo   包含对应于标准OLE文档摘要信息属性集合中的属性的属性元素。
 FormatVersion   用于处理版本对象的类。
InstanceDataFormatException   在硬盘上DrmTransformInstanceData的格式非法时抛出的异常。
 OleProperty
 PropSet
RenditionInfo   处理表示信息的类。这个类也提供用于增加表示到存储与流及从中移除表示的API。
 RenditionInfoCollection   强类型的RenditionInfo对象集合。
 RenditionManager   用于处理容器中的表示的类。
RightsManagementEncryptionTransform   实现IDataTransform接口的类,因此它可以用作实现内容的RM加密和解密的容器数据转换。
 StorageInfo   用于处理容器文件中的存储的类。
StorageRoot   表示主容器类。每个容器文件有StorageRoot的一个实例。
 StreamInfo   提供访问以处理容器文件中的流。
 SummaryInfo
TransformEnvironment   对每个转换对象给出此类的实例,作为转换对象和数据空间管理器提供的环境交互的方法。在给定的TransformEnvironment对象上保存转换对象的引用不是必须的,因为如果不需要和转换环境进行交互,它可能选择忽略。
 TransformInitializationEventArgs   传递参数到事件处理程序中的公共类。
UseLicenseInfo   包含描述从Tungsten服务器返回的使用许可证的信息。
UseLicenseInfoEnumerator   表示存储在DRM转换的实例数据中的使用许可证的枚举器。
  VersionTuple   包括主编号和次编号的版本元组类。
XmlDigitalSignatureProcessor   由根据W3C推荐对数据进行签名和校验的数字签名管理器使用的签名处理器。
 接口
 IDataTransform   由所有数据转换对象实现的接口。
IkicenseStorage   此接口用于通过构建此接口的定制实现来分离RMTransform和RMWizard,我们使得第三方能够利用RMWizard而不比强制他们使用RMTransform。
 ISignatureProcessor   签名处理器接口。
IUnknownRCW   此接口用于不透明地将任何(包装在运行时COM包装类中的)COM接口作为IUnknown处理。
  枚举
  DigitalSignatureProcessor   预定义的数字签名处理器。
  SignatureProcessorNameType   签名处理器的类型。
TransformIdentifierTypes   当命名转换对象时,可以用几种方式中的一种解释传入的字符串。此枚举类型用于指定标识字符串的语义。
  代理
  InvalidSignatureHandler   对散列表校验失败的签名进行调用。
  TransformInitializeEventHandler   初始化转换的代理方法。
System.Windows.Automation名字空间
System.Windows.Automation包含用于支持可访问性及用户接口自动化的成员。可访问性系统包括客户端和提供者端。工具的系统包括客户端自动化工具,客户端自动化工具包含用于搜索用户接口信息的客户自动化类。客户自动化类包括事件注册工具和逻辑元素发现工具。这组工具进一步包括用于向客户提供用户接口信息的提供者端自动化工具。提供者端自动化工具包括包含用于向客户提供事件信息的工具的自动化提供者类。
客户自动化类提供用于一个或多个客户的UI自动化方法。客户自动化类包含不特定于任何UI元素的方法。客户自动化类可以提供从点、窗口句柄或桌面根元素获取逻辑或原始元素的方法。客户自动化类还可以提供基于输入准则查找逻辑元素的方法。客户自动化类最好还包括注册和注销事件通知的方法。自动化类最好还包括用于加载代理DLL、检索本地化的属性名称和控件模式并执行元素比较的辅助函数。客户自动化类也包括由客户用来监听事件的方法。下面的表列出由System.Windows.Automation名字空间展现的例子成员。
Figure C20041007850400961
Figure C20041007850400981
Figure C20041007850400991
  枚举
AutomationPermissionFlag   包含AutomationPermission对象的访问标志。
  ChildArrangement   安排子元素的不同方法。
  DockPosition   可泊放窗口所附着的容器边缘。
ExpandCollapseState   由ExpandCollapse模式使用来指示扩展/收缩状态。
  GetDataOptions   GetData的选项。
HierarchyItemState   指示层次项状态的枚举,层次项状态包括:收缩、扩展或部分扩展。
ItemCheckState   指示复选框、单选按钮和类型控件状态的枚举。
  LoadState   树状态标志。
LogicalMapping   指示是否在逻辑树中显示原始树中的节点的值。
  ProxyFlags   用于指示请求属性的结果的枚举。
RowOrColumnMajor   表中的数据最好是由行表示还是由列表示。
  ScopeFlags   用来定义何时监听事件的范围的标志。
ScrollAmount   由ScrollPattern使用来指示滚动方向(正向或反向)和滚动量(页或行)。
SendMouseInputFlags   SendMouseInput的标志。这些标志指示是否发生了移动或是否按下或释放了按钮。
  SplitStyles   分裂窗口的方向的标志。
  StructureChangeType   指示逻辑树结构改变的标志。
TextPointerGravity   Gravity确定当在AutomationTextPointer插入文本时AutomationTexPointer的位置。Gravity总是从文本指针的视角出发,即,我在我的字符前面或我在我的字符后面。当用户在文本指针的位置插入字符时,Before意味着指针将放在新字符的前面;After意味着指针将放在新字符的后面。
  WindowChangeType  指示顶层窗口的改变的标志。
  WindowInteractionState  用于用户交互的窗口的当前状态。
WindowVisualState  用来描述窗口可视状态的状态。WindowVisualState遵循Office和HTML对WindowState的定义。
  结构
MatchCondition   指定使用FindLogicalElement或FindRawElement查找元素的准则。
NameAndData   包含作为对象的名字、数据及作为字符串的数据。
  ProxyDescription   包含有关代理的信息的结构。
  SortInformation   用来排序的信息。
 代理
 AutomationEventHandler   处理AutomationEvent的代理。
 AutomationFocusChangedEventHandler   处理焦点改变事件的代理。
 AutomationPropertyChangedEventHandler   处理自动化属性改变事件的代理。
 LogicalStructureChangedEventHandler   处理逻辑结构改变事件的代理。
ProxyFactoryCallback   由HWND处理程序实现;由UI自动化框架调用来请求指定窗口的代理。如果支持的话应返回代理,或在不支持的情况下返回空。
 TopLevelWindowEventHandler   处理顶层窗口事件的代理。
System.Windows.Ink名字空间
System.Windows.Ink名字空间提供支持电子墨水处理系统的类。电子墨水处理技术对各种软件应用都很有用。这些电子墨水处理技术特别适合用于分析电子墨水,包括布局分析、分类和识别电子墨水。某些电子墨水处理技术允许电子墨水处理和实现这些技术的软件应用的操作异步,从而能够以不中断或不明显延迟软件应用操作的方式来处理电子墨水。软件应用甚至可以在正在处理前面的电子墨水输入时继续接受新的电子墨水输入。
应用编程接口实例化墨水分析器对象,墨水分析器对象从来自寄宿该文档并允许在第一个处理线程上的软件应用接收用于包含电子墨水内容的文档的文档数据。然后墨水分析器对象使用第一个线程做出文档数据的拷贝,向电子墨水分析处理提供文档数据的拷贝,然后将第一个处理线程的控制返回到分析处理。在分析处理分析了电子墨水之后,墨水分析器对象协调分析处理的结果和该文档的当前文档数据。
在特殊的实施例中,可以基于它们相对于彼此的的空间位置对文件或文档中的元素进行描述。例如,可以用同样的空间坐标系统描述电子墨水笔触和键入的文本两者。使用空间信息来描述文档的元素,管理文档的软件应用可以维护描述其文档元素之间关系的数据结构。特别是,软件应用可以维护描述各种文档元素的类并定义各种文档元素之间的关联的数据接口。例如,这些关联可以定义为用于链接电子墨水笔触数据或它们的集合与电子文档中的其他元素(如单词、行、段落、图形、表格单元等等)的信息。
通过基于它们的空间位置来描述文件或文档数据结构中的文档元素,各种文件类型的文档元素可以使用通用技术来识别和处理它们的文档元素。更特别地,各种软件应用可以基于它们的空间位置描述文档内的文档元素,并通过使用通用电子墨水分析方法来使用此空间位置。进一步来说,通过指定文档中用于分析的特殊区域,每个软件应用可以限制分析处理为仅处理文档内所需的元素。
为了分析输入到文档中的新电子墨水,管理文档的软件应用修改和文档关联的数据结构以包括将分析的新墨水。然后软件应用向墨水分析工具提供此数据结构(或其相关部分),墨水分析工具复制此数据结构的部分或全部用于分析(并操作数据的这个拷贝,而此数据独立于应用程序的文档数据结构)。墨水分析工具将该拷贝传送到分析处理,如解析处理(如,布局分析处理和/或分类处理)。软件应用可以在正在执行墨水分析处理时继续其正常操作,包括接收新的电子墨水输入和/或其他数据。除了接收新的电子墨水,应用程序可以接收任何“其他数据”,例如,修改现有墨水、文本、图像、图形、表、流程图、图表等等的大小、位置或内容的数据;增加附加文本、图像、图像、表、流程图、图表等等的数据;删除现有文本、图像、图形、表、流程图、图表等等的数据。在所有需要的分析处理完成后,将分析结构返回到墨水分析工具。
墨水分析工具执行各种功能来帮助电子墨水的处理。墨水分析工具可以作为编程接口(如API)来实现。进一步来说,墨水分析工具可以作为一组软件对象例程和相关信息来实现,它们可以由软件应用根据需要进行调用以分析文档中的墨水。
在一个实施例中,实现墨水分析工具的API(此后称为墨水分析API)可以包含两个核心类。第一个类被称作“分析上下文”类,而第二个类为“墨水分析器”类。“分析上下文”类的组件用于创建分析上下文对象。“墨水分析器”类的组件用于创建和使用对分析处理提供文档独立的分析上下文对象的对象、确定何时产生分析结果,并协调分析结果与文档的当前状态。
分析上下文类由宿主应用实现以创建分析上下文对象,它作为软件应用的内部文档树的代理视图来使用。分析上下文对象包含所有未分析的墨水数据,且分析上下文对象用于识别应分析哪些未分析的墨水数据。分析上下文对象也包含有关原先分析好的墨水的信息。原先分析好的墨水可以用于确定如何分析当前正在分析的墨水,且可以在分析未分析的墨水过程中对它自身进行修改。进一步来说,分析内容对象包含有关文档非墨水内容的信息,它用于正确地将墨水分类为非墨水内容的注释。
分析上下文类包括当由软件应用调用时创建分析上下文对象的构造函数。这个类也包括用于分析上下文对象的各种属性,包括称为“DirtyRegion{get;}”的属性。DirtyRegion属性定义文档中包含未分析的墨水数据的部分(从而包括分析上下文对象的部分)。
分析上下文类也可以包括称为“Rootnode{get;}”的属性,它标识分析上下文对象中的最顶层或根上下文节点。这个根上下文节点,如子上下文节点一样,包括给定分析上下文对象的所有其他上下文节点对象。在特殊的实施例中,根上下文节点应属于上下文节点类型“Root”。在应用实现其自身的分析上下文对象的实施例中,分析上下文对象可以有其他上下文节点作为根上下文节点的兄弟节点,但墨水分析器类的组件只限于考虑由根上下文节点包含的上下文节点。
分析上下文类可以附加地包括属性“AnalysisHints{get;}”,它返回由软件应用设置的分析提示对象数组。如下面更详细的说明,分析提示对象可以包含辅助分析处理的任何类型的信息。此信息可以包括,例如,仿真陈述、指南或单词列表。它也可以包括设置用于分析的语言的信息、将未分析的墨水作为完全的手写文本、完全的图画或对解析处理提供任何类型的指导来识别(如将墨水作为列表、表、形状、流程图、连接器、容器等等识别)的信息。
除了这些属性,分析上下文类也可以包括可以由例如软件应用调用从而让分析上下文对象执行任务的各种方法。例如,分析上下文类可以包括称为“FindNode(Guid id)”的方法。分析上下文对象中的每个节点都有全局唯一标识符(或GUID),且此方法将在分析上下文对象中的任何地方定位调用中指定的节点。
如分析上下文类那样,墨水分析器类也定义允许软件应用创建该类的实例(即,墨水分析器对象)的公共构造函数,和各种属性。例如,它可以包含称为“UserInterface Context{get;set;}”的属性,它定义向其返回分析处理结果的处理线程。此属性允许将结果同步到另一个对象。例如,如果这设置为主表单,那么解析器结果将在应用主线程发出。它也可以包含属性“AnalysisOptions AnalysisOptions{get;set;}”,此属性指定可以用于分析处理的各种准则。这些准则可以包括,例如,支持文本识别、支持表的使用、支持列表的使用、支持注释的使用和支持连接器和容器的使用。
墨水分析器类将包括各种方法。例如,这个类可以包含称为“AnanysisRegion Analyze()”的方法。此方法启动一个同步分析处理。传入文档元素数据到这个方法,它描述文档的当前状态并指示需要分析文档中的什么墨水。对某些实施例,如上所述,文档元素对象可以作为分析上下文对象提供(即,AnalysisRegion Analyze(Analysis Context))。另外,可以将单个墨水笔触传递给分析处理,或者使用对笔触的引用(如AnalysisRegionAnalyze(Strokes))或作为墨水分析器对象的属性引用(如,InkAnalyzer.Strokes{get;set})而没有属性传递给Analyze方法。
一旦分析处理完成,此方法将返回对已被修改为包含分析处理结果的独立于文档的分析上下文对象的引用。此方法也返回描述文档中计算出结果的区域的AnalysisRegion值。
墨水分析器类也可以包括称为“AnalysisRegionAnalyze(AnalysisContext,waitRegion)”的方法。此方法和上述的同步分析区域Analyze()方法相同,但是它只在在需要指定的waitRegion区域中的结果时对墨水进行分析。更特别地,对此方法的调用将标识文档的分析上下文对象和分析上下文对象的区域(称为“waitRegion”),分析处理应对此区域进行同步分析。在特定实施例中,将忽略分析上下文对象的所有其他区域,除非分析处理需要分析那些区域中的内容来完成它对waitRegion的分析。如上所述,用此方法传递的分析上下文对象包括称为“DirtyRegion”的属性,它描述文档中需要分析的区域。通过指定具体的waitRegion,软件应用可以更加快速地获取所关注的一个特定区域的分析结果,而不是分析文档中的所有墨水数据。当调用这些Analyze方法中的任何一个时,将执行每个可用的分析处理。同时,由于这些Analyze方法是同步调用,不需要在它们结束时执行协调处理,也不需要在它们结束时触发事件。
墨水分析器类也可以包括称为“BackgroundAnalyze(AnalysisContext)”的方法。此方法启动指定的分析操作,但在独立的背景分析线程进行处理。因此,此方法将几乎立刻就返回控制到主处理线程,而实际的分析操作在背景完成。特别地,如果成功启动分析处理,此方法将返回“真”值。再次,传入该方法的AnalysisContext值标识文档的分析上下文对象并指示需要分析文档中的什么墨水。一旦分析操作已在背景线程上完成,则触发Result事件以允许软件应用访问这些结果。此事件包含结果和协调方法用于将结果返回包括在返回结果时文档的当前状态的分析上下文对象中。
这三个Analyze方法中的每一个都按顺序调用“Analysis Region”类中的方法“Clone”。使用“Clone”方法,这些Analyze方法创建独立的文档分析上下文对象,接下来此上下文对象由分析处理修改以展示分析结果。
墨水分析器类也可以包括称为“Reconcile(AnalysisContext current,AnalysisResultsEventArgs resultArgs)”的方法,软件应用在接收到由调用BackgroundAnalyze(AnalysisContext)方法导致的结果事件之后对它进行调用。Reconcile方法比较包含在文档独立的分析上下文对象中的分析结果与由软件应用维护的分析上下文对象的当前版本。此方法标识需要增加和从分析上下文对象的当前版本中移除的节点,并标识现有节点的任何下面的属性是否已改变:其识别结果、其位置、和该节点关联的墨水笔触,或和分析操作的结果关联的任何其他数据。此方法也将这些标识出的改变写入到分析上下文对象的当前版本中。此方法对上下文节点顺序敏感,如行上下文节点上的单词上下文节点的顺序。
由于它们包含公共结果结构和私有结果结构,用此方法传回分析结果(即,AnalysisResultsEventArgs属性的值)。返回公共结构从而软件应用可以预览将发生在协调阶段的改变。包括私有结构以防止软件应用在协调处理之前改变任何分析结果。
墨水分析器类也包括称为“Recognizers RecognizersPriority()”和“SetHighestPriorityRecognizer(recognier)”的方法。当需要识别墨水时,将基于语言和能力使用适当的识别器。相应地,RecognizersRecogonizersPriority()方法以墨水分析器对象评估它们的顺序返回识别处理。每个系统都取决于可用的识别处理来确定此顺序,但软件应用可以通过在墨水分析器对象上调用SetHighestPriorityRecognizer(recognizer)进行覆盖。墨水分析器将枚举这个有序列表直到可以找出适当的识别器。SetHighestPriorityRecognizer(recognizer)方法提高识别处理的优先级。通过提高特殊的识别处理的优先级,如果它匹配当前识别操作所需的语言和能力,则将使用该识别处理。本质上,SetHighestPriorityRecognizer(recognizer)将指定的识别处理压入到由RecognizersPriority方法返回的列表顶部。
墨水分析器类也包含称为“AnalysisRegion Abort()”的方法,它可以将分析上下文对象用作参数。此方法允许前台或后台分析操作较早地终止。此方法返回描述在取消之前正在分析的区域的分析区域。因此,如果软件应用需要在晚些时候继续分析操作,可以将此区域合并到文档当前状态的分析上下文对象的DirtyRegion中。进一步来说,墨水分析器类可以包括称为“AnalysisResultsEventHandler”的事件,它根据需要的频率对墨水分析器对象触发。更特别地,可以在分析处理之间每隔五秒钟至少触发此事件一次。此事件可以用于向应用提供对正在进行的异步分析处理(或多个处理)的状态的更新。
墨水分析API也可以包括除分析上下文类和墨水分析器类之外的类。例如,墨水分析API可以包括上下文节点类。此类也可以包括和构成分析上下文对象和文档独立的分析上下文对象的上下文节点相关的各种组件,如称为“ContextNodeType Type{get;}”的属性。每个上下文节点都有类型,且有每个类应遵循的一组特定规则。这包括这样的规则,如允许什么类型的子上下文节点,以及笔触是否可以直接和上下文节点关联或只能通过其子上下文节点关联。
上下文节点的可能类型可以在ContextNodeTypes枚举中定义,且可以包括,例如,下面的类型:InkAnnotation节点,它表示墨水数据注释非文本数据的;InkDrawing节点,它表示构成图形的墨水数据;InkWord节点,它表示构成单词的墨水数据;Line节点,它表示一个或多个InkWord节点和/或用于构成一行文本的单词的TextWord节点;ListItem节点,它可以包含Paragraph、Image,或类似的在列表中期望的节点;及List节点,它包括每个都描述列表中的一个条目的一个或多个Listem节点。节点类型也可以包括NonInkDrawing节点,它表示非墨水图形图像;Object节点,它表示未由ContextNodeType枚举的其他值包括的数据;Paragraph节点,它包含一个或多个对应于构成段落的行的Line节点;Picture或Image节点,它们表示图像;Root节点,它充当分析上下文对象中的顶层节点;Table节点,它包含表示构成表的项目的节点;TextBox节点,它表示文本框;TextWord节点;及UnclassifiedInk节点,它对应于还未被分类的墨水数据。节点类型也可以包括用于其他节点分组的Group节点、用于着重表示项的InkBullet节点、用于出现在表的一行中文档元素的Row节点,以及用于出现在表的单元格中的文档元素的Cell节点。
上下文节点也可以包括称为“GUID Id{get;}”的属性,它是当前上下文节点的全局唯一标识符。为了允许对任何所需上下文节点的访问,单个分析上下文对象内的每个上下文节点都应具有唯一标识符。此类也可以包括称为“AnalysisRegion Location{get;}”的属性,它标识文档空间中实际上定位相关上下文节点的位置。AnalysisRegion是对一个或多个可能不相交的似矩形结构一起进行分组的二维结构。此类也可以包括称为“StrokeCollection Strokes{gets;}”的属性,它表示和相关的上下文节点关联的墨水笔触。对特殊的实施例,墨水分析API只允许叶上下文节点(如Word、Drawing和Bullet节点)有笔触。软件应用可以使用此属性通过所有祖先上下文节点来引用叶节点级别的笔触(如,根节点可以包含对相关的分析上下文对象中的所有笔触的笔触引用)。
进一步来说,这个类可以包括称为“ContextNode ParentNode{get;}”的属性,它标识包含相关上下文节点的父上下文节点。在特殊的实施例中,上下文节点总是依赖于父上下文节点创建,而Root上下文节点为分析上下文对象的静态成员。这个类也可以包括属性“ContextNode[]SubNodes{get;}”,它标识作为相关上下文子节点直接子节点的所有上下文节点。即,此属性仅标识分析上下文对象中向下一层的那些子上下文节点。例如,Paragraph上下文节点的这个属性值仅标识由该Paragraph节点包含的行上下文节点,而并不标识作为行上下文节点的子节点的单词上下文节点。
这个类也可以包括称为“RecognitionResult RecogonitionResult{get;}”的属性,它提供由相关的识别分析处理或多个处理计算出的识别结果,因为RecognitionResult可以标识不止一种语言的不止一行文本。RecogonitionResut对文档独立的分析上下文对象中的每个上下文节点可用,虽然由识别分析处理设置并用于创建RecognitionResult对象的RecognitionData属性只可能在上下文节点树的一个层次上设置以避免复制数据。如果节点没有与其关联的RecogonitionData,它将或者合并其所有子节点的识别结果或从其父节点抽取识别结果。这个类也可以包括称为“StreamRecognitionData{get;set;}”的属性,它是RecognitionResult值的持续形式。再次,识别分析处理产生在相关上下文节点上设置的StreamRecogonitionData值。然后基于此值构建RecognitionResult对象。
上下文节点类可以进一步包括称为“ContextLink[]Links{get;}”的属性,它提供ContextLink对象的数组。ContextLink对象描述两个上下文节点之间的其他关系。虽然上下文节点通常和其他上下文节点有父子关系,ContextLink支持上下文节点之间的其他关系。例如,ContextLink可以支持两个上下文节点之间的连接:连接一个上下文节点到另一个上下文节点、由一个上下文节点包含另一个上下文节点,或由软件应用定义的所需类型的连接。可以通过调用AddLink方法将ContextLink增加到这个数组。类似地,可以通过调用DeleteLink方法从这个数组中移除ContextLink。
进一步来说,这个类可以包括属性“IsContainer{get;}”和“IsInkLeaf{get;}”。如果相关上下文节点不是叶上下文节点(即,如果相关上下文节点包含子上下文节点并因此视为容器上下文节点)则IsContainer{get;}属性值为“真”,反之则为“否”。如果相关上下文节点是叶上下文节点则IsInkLeaf{get;}属性值为“真”,反之则为“否”。即,如果相关上下文节点不包含任何子上下文节点,则将其视为叶上下文节点。在特定实施例中,期望InkLeaf上下文节点包含对笔触数据的引用,而容器上下文节点没有此限制。容器上下文节点可以引用也可以不引用笔触数据,根据软件应用的指派而定。
上下文节点类也可以包含属性“Rect RotatedBoundingBox{get;set;}”。由布局和分类分析处理来计算这个属性的值。如果以某个角度写出和相关上下文节点关联的墨水数据,则上下文节点边界将仍然是水平对齐的。然而RotatedBoundingBox属性的值将与写出和相关上下文节点关联的墨水数据的角度对齐。进一步来说,这个类可以包括属性“ReClassifiable{get;}”,此属性通知墨水分析器是否允许它修改相关上下文节点的值。
除了这些属性,上下文节点类也可以包含各种方法。例如,这个类可以包括称为“ContextNode CreateSubNode(ContextNodeType type)”的方法。这个方法允许创建特殊类型的子上下文节点。在一个实施例中,这个方法只允许创建相关上下文节点的合法子节点类型,从而防止创建异常的数据结构。例如,这个方法只允许Line上下文节点创建InkWord和TextWord子上下文节点。这个类也可以包含称为“void DeleteSubNote(ContextNode node)”的方法,它从相关分析上下文对象中删除引用的子上下文节点。然而,在某些实施例中,如果所引用的上下文节点仍然包含笔触或子上下文节点,则此方法会失败。如果引用上下文节点不是相关上下文节点的直接子节点,则此方法也会失败。如果软件应用实现其自身的分析上下文对象并随后使用此方法,则它不删除不是相关上下文节点直接子节点的一个或多个非空上下文节点,以防止在分析上下文对象中出现异常的数据结构。
另外,这个类也可以包括“ContextNode[]HitTestSubNodes(AnalysisRegion region)”方法,它返回定位在指定区域中的上下文节点的数组。然而,只返回此元素的直接子节点,而不是所有的后代节点。此区域由AnalysisRegion对象定义,它可以是一个或多个矩形的集合。在特殊的实施例中,如果上下文节点任何部分的位置和指定区域相交,则将在该数据中返回此上下文节点。此方法用于,例如,创建文档独立的上下文分析对象并协调分析结构与对应于文档当前状态的分析上下文对象。因此,频繁调用此方法,并应该为由墨水分析器对象快速重复访问而优化它。
上下文节点对象也可以包含称为“MoveStroke(Stroke stroke,ContextNode destination)”的方法。此方法将笔触关联从一个叶上下文节点移动到另一个叶上下文节点。在某些实施例中,此方法仅在叶上下文节点之间使用。它也可以包含称为“MoveSubNodeToPosition(int OldIndex,intNewIndex)”的方法,此方法将相关上下文节点相对于其兄弟上下文节点重新定位。例如,如果文档有三个单词在一行中,如单词1、单词2和单词3,那么它们的顺序隐含在从父上下文节点返回的子节点数组中。此方法允许改变它们的顺序,从而相对于相关父上下文节点来说,通过将单词1的上下文节点从位置1移动到位置3可以把单词1指定为行中的最后一个单词。
进一步来说,这个类可以包含称为“AddLink(ContextLink link)”的方法,此方法增加新的ContextLink对象到当前的上下文节点。在特殊的实施例中,ContextLink对象应包含对相关上下文节点的引用,以便将ContextLink成功增加到关联于相关上下文节点的ContextLink数组。它也包含称为“DeleteLink(ContextLink link)”的方法。此方法从相关上下文节点的ContextLink数组删除或异常指定的ContextLink对象。在一个实施例中,此方法调用总是成功完成,即使ContextLink不存在于关联于相关上下文节点的ContextLink数组中。
墨水分析API也可以包含分析提示类。如上述的很多类一样,分析提示类可以包括构造函数,称为“AnalysisHit()”,它初始化分析提示对象为空状态。这个类也可以包括多个属性,包括称为“AnalysisRegion Location{get;}”的属性。此属性指定文档中应用AnalysisHint的位置(作为AnalysisRegion)。例如,如果文档是具有处于页眉的标题部分的自由格式笔记,那么应用可以对标题区域设置AnalysisHint来指定在该区域中期望水平的墨水行。AnalysisHint将有助于提高分析处理的准确度。
此类也可以包含称为“string Factoid{get;set;}”的属性,它指定特殊的“仿真陈述”,用于文档中应用AnalysisHint的位置。仿真陈述向识别处理提供对墨水数据的期望使用(如,作为正常文本、数字、邮政编码、文件名和Web URL)的提示。这个类也可以包括称为“RecognizerGuide Guide{get;set;}”和“OverrideLanguageId{get;set;}”的属性。RecognizerGuideGuide{get;set;}属性指定应用于文档中应用AnalysisHint的位置的写入指导。写入指导可以,例如,通过向用户指定并通知识别器分析处理用户将在何处写出行或字符来帮助提高识别器分析处理的准确度。OverrideLanguageId{get;set;}属性指定应用AnalysisHint的文档的语言提示。设置语言提示使得墨水分析器对象使用指定的语言而不是上下文节点中指定的语言。
这个类也可以包含称为“PrefixText{get;set;}”的属性,它指定在将被识别的一行墨水之前写入或键入的文本。进一步来说,这个类可以包括称为“RecognitionModes RecognitionFlags{get;set;}”的属性,它指定识别处理在应用AnalysisHint的文档中的位置应遵循的特殊类型的模式。另外,这个类可以包括称为“SuffixText{get;set;}”的属性,它指定在将被识别的一行墨水之后写入或键入的文本,及称为“WordList WordList{get;set;}”的属性,它指定应由识别分析处理使用的单词的特殊集合。单词列表可以在用户实际上写入输入数据之前就知道期望的识别结果时使用,如期望在医药表单内写出的医药术语列表。
进一步来说,这个类可以包括称为“WordMode{get;set;}”的属性。如果此值为“真”,则分析处理将调整自身以偏向于对整个分析区域返回单个单词。它也可以包括称为“Coerce{get;set}”的属性,它如果为“真”,则将强制分析处理将其结果限制在相关提示中设置的任何仿真陈述或单词列表值中。这个类也可以包括称为“AllowPartialDictionaryTerms{get;set}”的属性。如果此属性的值为“真”,则将允许识别分析处理返回来自它的识别字典中的不完整单词。
在特殊实施例中,墨水分析API可以进一步包括AnalysisRegion类。这个类可以包括,例如,多个用于构造AnalysisRegion对象的构造函数。例如,它可以包含用于构造包含任何区域的AnalysisRegion对象的第一个构造函数,用于基于二维矩形的参数构造AnalysisRegion对象的第二个构造函数,及用于基于四个空间坐标构造AnalysisRegion对象的第三个构造函数。缺省的构造函数可以为,例如,创建空的区域。这个类也可以包含多个属性。例如,这个类可以包含称为“Rectangle Bounds{get;}”的属性,它检索AnalysisRegion的边界矩形;称为“IsEmpty{get;}”的属性,它指示相关的AnalysisRegion对象内部是否为空;及称为“IsInfinite{get;}”的属性,它指示相关的AnalysisRegion是否被设置为无限。
这个类也可以包含多个方法,如称为“AnalysisRegion Clone()”的方法,它克隆相关的AnalysisRegion对象。这个类也包括包含称为“Equals(AnalysisRegion otherRegion”的方法,它检验指定的AnalysisRegion对象(称为otherRegion)是否等同于相关的AnalysisRegion对象。如果指定的AnalysisRegion对象内部等同于相关的AnalsysisRegion对象的内部,此方法返回“真”,否则返回“假”。
这个类可以进一步包含“Intersect(AnalysisRegionregionToIntersect)”方法,它剪切相关的AnalysisRegion对象为指定的分析区域。因此,结果AnalysisRegion对象将只包括和指定分析区域重叠或相交的区域。这个类也可以包含称为“Intersect(Rectangle rectangle)”的方法,它剪切相关的AnalysisRegion对象为指定的矩形。再次,结果AnalysisRegion对象将只包括和指定分析区域重叠或相交的区域。它也可以包括称为“MakeEmpty()”的方法,此方法把相关的AnalysisRegion对象内部初始化为空,及称为“MakeInfinite()”的方法,此方法把相关的AnalysisRegion占据的区域设置为无限。它可以进一步包括用于合并或分离不同的定义的区域的各种方法,如称为“Union(AnalysisRegionregionToUnion)”的方法,它指定合并或增加到相关AnalysisRegion对象的AnalysisRegion对象,和称为“Union(Rectangle rectangle)”的方法,它将指定的矩形合并到相关的AnalysisRegion对象。通过此方法,可以根据相关AnalysisRegion对象的坐标空间指定矩形。当然,这个类可以包含大量的其他方法,用于基于任何区域的所需定义合并区域或从另一个区域中抽取一个区域的。
墨水分析API也可以包括识别结果类。如上述的很多类,识别结果类可以包括一个或多个构造函数。例如,这个类可以包括称为“RecognitionResult(Stream lattice)”的构造函数,它通过给定的识别网格构造识别结果对象。在特殊的实施例中,识别网格是识别处理结果序列化的形式。这个方法可以,例如,将识别网格指定为用于构建相关识别结果对象的字节数组。它也可以包括称为“RecognitionResult(ContextNode node)的构造函数”,它通过给定的上下文节点构造识别结果对象。它也可以包括构造函数称为“RecognitionResult(string Text,int StrokeCount)”,它通过指定的文本值构造识别结果对象,它接下来关联于指定数量的笔触,且可以在识别处理没有对应于实际写出的墨水数据的替换识别值时用于修正。进一步来说,这个类可以包括称为“RecognitionResult(RecognictionResult leftRecognitionResult,RecognitionResult rightRecognitionResult)”的构造函数,它通过合并两个现有的识别结果对象来构造识别结果对象。
识别结果类也可以包含一个或多个属性,如称为“StrokeCollectionStrokeCollection{get;}”的属性,它提供标识包含在单个墨水对象中的笔触集合的笔触索引数组,及称为“RecognitionAlternate TopAlternate{get;}”的属性,它提供识别结果的最佳替换。这个类也可以包括称为“RecognitionConfidence RecognitionConfidence{get;}”的属性,它提供来自识别分析处理的当前结果的顶层替换选择的置信水平(如,强、中等或弱),及称为“string TopString{get;}”的属性,它返回来自识别分析处理的分析结果的最佳结果字符串。
识别结果类也可以包括多个方法,如称为“publicRecognitionAlternateCollection GetAlternateCollectionFromSelection(selectionStart,selectionLength,maximumAlternates)”的方法,它指定来自识别分析处理的分析结果的最佳结果字符串内的选择的替换集合,其中每个替换只对应于一个墨水片段。此方法的输入参数可以包括,例如,指定从中返回替换集合的文本选择开始位置的值、指定从中返回替换集合的文本选择长度的值,及指定返回替换的最大数量的值。此方法可以从识别结果的最佳结果字符串内的选择中返回RecognitionAlternateCollection替换集合。
识别结果类可以进一步包括称为“RecognitionResultMerge(RecognitionResult left,string separator,RecognitionResultright)”的方法。此方法可以用来通过单个字符串创建新的识别结果对象,得到扁平的网格,附加单个字符串到现有识别结果对象开始或末尾,或在两个现有的识别结果对象之间连接单个字符串。这个类也可以包括称为“ModifyTopAlternate(RecognitionAlternate alternate)”的方法,它指定用已知的替换来修改识别结果。对某些实施例,缺省的识别分析处理的结果最佳结果字符串对应于顶层替换。然而,此方法可以用于指定将除顶层替换之外的替换用在识别分析处理结果中。如果新的顶层替换导致和原先不同的划分,ModifyTopAlternate方法将自动更新上下文节点来反映这些改变。为了检索可以用来修改识别结果的替换,此方法调用GetAlternatesFromSelection方法。这个类也可以包括称为“Stream Save()”的方法,它持续地维护形式为识别网格的相关识别结果对象。识别网格是用于表达识别处理结果的序列化的格式。
墨水分析API也可以包括AnalysisOptions枚举类型。此类型可以包含一个或多个指定分析处理如何分析墨水数据的字段,如称为“constAnalysisOptions Default”的字段,它支持分析处理的所有可用选项。此字段可以,例如,支持文本识别、表的使用、列表的使用、注释的使用、连接器和容器的使用,及中间结果的使用。此类型也可以包括称为“constAnalysisOptions EnableAnnotations”的字段,它启用和禁用注释的检测;称为“const AnalysisOptions EnableConnectorsAndContainers”的字段,它启用和禁用连接器和容器的检测;及称为“const AnalysisOptionsEnableIntermediateResults”的字段,它启用和禁用返回使用不同的、顺序分析处理之间(如,解析处理和接下来的识别处理之间)的分析结果到软件应用。此类型也可以包括称为“const AnalysisOptions EnableLists”的字段,它启用和禁用列表的检测;及称为“const AnalysisOptions EnableTables”的字段,它启用和禁用表的检测。这个枚举类型进一步包括称为“constAnalysisOptions EnableTextRecognition”的字段,它启用和禁用文本识别分析处理。然而,如果附加的分析处理可用(或同一分析处理的不同版本可用),则此类型可以相应地包括附加的AnalysisOption。
进一步来说,墨水分析API可以包括AnalysisResultsEventArgs类。这个类可以有称为“public AnalysisResultsEventArgs()”的构造函数,它创建包含分析结果的数据结构并在触发AnalysisResults事件时返回到软件应用。这个类也可以包括称为“InkAnalyzer InkAnalyzer{get;}”的属性,它标识执行分析处理的InkAnalyzer对象。
API也可以包括Line类,它对将“Line”对象的使用识别为表示几何直线的某些类型的操作系统有用。这个类可以包括构造函数,如称为“publicLine(Point beginPoint,Point endPoint)”的构造函数,它创建Line对象。这个类也可以包括各种属性,如称为“public Point BeginPoint{get;set;}”的属性,它表示行对象的起点及称为“public Point EndPoint{get;set;}”的属性,它表示行对象的终点。
除了这些类,墨水分析API也可以包含RecognitionAlternate类。这个类可以包括表示墨水片段和识别器的字典比较产生的可能单词匹配的元素。例如,这个类可以包括称为“Line Ascender{get;}”的属性,它提供存在于单个行(表示为两个点的行)上的RecognitionAlternate对象的上升行;称为“public Line Baseline{get;}”的属性,它提供存在于单个行上的RecognitionAlternate对象的基线;和称为“Line Descender{get;}”的属性,它提供存在于单个行上的RecognitionAlternate对象的下降行。这个类也可以包括称为“RecognitionResult Extract{get;}”的属性,它提供当前的RecognitionAlternate对象的RecognitionResult对象。这个属性可以用于,例如,从包含该单词的行的RecognitionResult对象抽取单词的RecognitionResult对象。
它也可以包括称为“Line Midline{get;}”的属性,它提供存在于单个行上的行中点RecognitionAlternate对象;称为“StrokeCollection Strokes{get;}”的属性,它提供包含在墨水对象中的笔触集合(即,它提供表示关联于RecognitionResult的笔触的StrokeCollection),及称为“StrokeCollection[]StrokeArray{get;}”的属性,它提供包含在一个或多个墨水对象中的表示和RecognitionResult关联的笔触的笔触集合。这个类也可以包括称为“RecognitionConfidence RecognitionConfidence{get;}”的属性,它提供识别分析处理在识别RecognitionConfidence对象或姿势时确定的置信水平(如,强、中等,或弱)。对非行节点,将返回最低的相关上下文节点的子节点RecognitionConfidence。它也可以包含称为“string RecognizedString{get;}”的属性,它指定替换的结果字符串。因此,对单词上下文节点之上的任何上下文节点,通过此方法将结果字符串连接在一起。例如,行节点将包含结果字符串,结果字符串又包含所有其子节点或单词节点的结果。段落节点将包含结果字符串,结果字符串又包含所有其子节点或行节点的结果
RecognitionAlternate类也可以包含一个或多个方法,包括例如,称为“StrokeCollection[]GetStrokesArrayFromTextRange(int selectionstart,int selectionlength)”的方法,它通过对应于已知文本范围的每个墨水对象指定StrokeCollection。这个类也可以包含称为“StrokeCollection[]GetStrokesFromStrokesArrayRanges(StrokeCollection[]strokesArray)”的方法,它指定包含已知输入笔触集合且识别器向其提供替换的最小笔触集合。更特别地,通过每个均包含该集合的笔触索引数组的墨水笔触的数组返回笔触。通过此方法返回的墨水笔触集合可以和输入集合匹配,或如果输入集合仅匹配包括所有输入笔触的最小的识别结果的部分,那么它可以更大。这个类可以进一步包括称为“StrokeCollectionGetStrokeFromStrokesRanges(StrokeCollection strokes)”的方法,它指定包含已知输入笔触集合且识别器可以对其提供替换的最小笔触集合;及称为“StrokeCollection GetStrokesFromTextRange(int selectionstart,intselectionlength)”方法,它指定对应于已知文本范围的StrokeCollection。
这个类可以进一步包括称为“void GetTextRangeFromStrokes(ref intselectionstart,ref int selectionend,StrokeCollection strokes)”的方法,它指定识别器可以对其返回包含已知笔触集合的替换的已识别文本的最小范围;及称为“void GetTextRangeFromStrokesArray(ref intselectionstart,ref int selectionend,StrokeCollection[]strokesarray)”的方法,它指定识别器可以对其返回包含已知笔触集合的替换的已识别文本的最小范围。它也可以包括称为“RecognitionAlternateCollection SplitWithConstantPropertyValue(GUIDpropertyType)”的方法,它返回替换的集合,它们是对其调用此方法的替换的划分。集合中的每个替换都包含对传递到该方法中的属性有相同属性值的邻接识别片段。例如,此方法可以用于获取根据识别结果中的置信水平边界(强、中等,或弱)、行边界,或片段边界划分初始替换的替换。它可以进一步包括称为“byte[]GetPropertyValue(GUID propertyType)”的方法,它指定替换中的已知属性值,如替换中的识别器置信水平。然而,不是所有的识别分析处理都会提供所有的属性类型的值。因此,此方法提供由相关的识别分析处理支持的类型的数据。
墨水分析API也包括RecognitionAlternateCollection类。如上述的其他类,这个类可以包括用于创建RecognitionAlternateCollection对象的称为“RecognitionAlternateCollection()”的构造函数。这个类也可以包括多个属性,如称为“Count{get;}”的属性,它提供包含在替换识别值的集合中的对象或集合的数目;称为“IsSynchronized{get;}”的属性,它提供指示对替换识别值集合的访问是否和软件应用同步(即,“线程安全”)的值;及称为“SyncRoot{get;}”的属性,它提供可用于同步对替换识别值集合的访问的对象。
这个类也可以包含一个或多个方法,如称为“virtual void CopyTo(Arrayarray,int index)”的方法,它复制当前替换识别值集合中的所有元素到指定的一维数组,开始于指定的目标数组下标;及称为“IEnumeratorIEnumerable.GetEnumerator()”的方法,它是IEnumerable的标准实现,IEnumerable使得调用者能够使用for each结构来枚举替换识别值集合中的每个RecognitionAlternate。这个类也可以包括称为“RecognitionAlternateCollectionEnumerator GetEnumerator()”的方法,它返回包含识别替换值集合内的所有对象的RecognitionAlternateCollectionEnumerator。此方法可用于,例如,检索识别替换值集合中的每个对象。
墨水分析API可以附加地包括RecognitionConfidence枚举和RecognitionMode枚举,它们都可以包含一个或多个和识别分析处理相关的字段。例如,RecognitionConfidence类可以包含多个字段,如称为“Intermediate”的字段,它指示识别分析处理确信正确结果在提供的替换识别值列表中;称为“Poor”的字段,它指示识别分析不确信结果在提供的替换识别值列表中;及称为“Strong”的字段,它指示识别分析处理确信替换识别值中的最佳替换是正确的。
类似地,RecognitionMode类可以包括指定识别分析处理如何解释电子墨水数据并从而确定识别结果字符串的字段。例如,这个类可以包括称为“Coerce”的字段,它指定识别分析处理基于对上下文指定的仿真陈述强制产生识别结果;及称为“Line”的字段,它指定识别分析处理把电子墨水数据当作单个行。这个类也可以包括称为“None”的字段,它指定识别分析处理不应用识别模式;及称为“Segment”的字段,它指定识别分析处理将电子墨水数据视为由单个单词或字符构成。进一步来说,这个类可以包括称为“TopInkBreaksOnly”的字段,它禁用多个分段。
进一步来说,墨水分析API可以包括ContextLink类,它定义如何将两个上下文节点链接在一起。ContextLink对象自身表示链接哪两个上下文节点、链接的方向及链接的类型。这个类可以包括称为“ContextNode SourceNode{get;}”的属性,它指定链接到另一个上下文节点的源上下文节点;称为“ContextLinkType LinkType{get;}”的属性,它指定存在于源和目标上下文节点之间的链接关系的类型;及称为“CustomLinkType{get;}”的属性,它指定使用定制的链接。此情况在应用决定使用墨水分析器API的链接系统来表示API可以识别的范围之外的特定于应用的链接时会发生。
这个类也可以包括称为“ContextNode DestinationNode{get;}”的属性,它指定链接到另一个上下文节点的目标上下文节点。可能有两个构造函数对这个类可用,它们创建现有的源和目标上下文节点之间的关系。
这个类也可以包括称为“ContextLinkType enum”的枚举,它定义由两个上下文节点共享的关系的类型。这些链接类型可以包括,例如,“AnchorsTo”类型,它描述一个节点锚接到另一个节点。基于解析情况,两个节点都可以使用SourceNode或DestinationNode属性。链接类型也可以包括“Contains”类型,这描述一个节点包含另一个节点。具备此关系,容器节点可以作为SourceNode引用,而被包含的节点可以作为DestinationNode引用。链接类型可以进一步包括“PointsTo”类型,它描述一个节点指向另一个节点。对此关系,进行指向的节点可以作为SourceNode引用,而被指向的节点可以作为DestinationNode引用。进一步来说,链接类型可以由“PointsFrom”类型,它描述从另一个节点指向一个节点。在此关系,从其他节点进行指向的节点可以作为SourceNode引用,而被从其他节点指向的节点可以作为DestinationNode引用。
链接类型可以附加地包括“SpansHorzontally”类型,它描述一个节点跨越另一个节点的横向长度;及“SpansVertically”类型,它描述一个节点跨越另一个节点的纵向长度。对这些类型,覆盖(划出、强调、勾勒)其他节点的节点通常最后写出,并可以作为SourceNode引用,而被跨越的节点可以作为DestinationNode引用。链接类型也可以包括“Custom”类型,它描述使用了定制的链接类型。当使用此值时,ContextLink对象上的“CustomLinkType”属性可以对此链接的目的提供更多细节。
应用模型
窗口客户机集成了Web的特性和传统桌面应用的特性。应用模型提供安全应用的框架并简化客户机应用的开发、部属和维护。此框架提供简单和一致的用户体验。例如,本地应用可以利用熟悉的类似浏览器的特性,而不管应用是寄宿在浏览器中还是单独的应用,同时保留在本地客户机上执行的好处。此框架允许用户利用他们熟悉Web这一点,从而增加了用户的舒适水平并减少了学习使用新应用所需的时间。应用模型是System.Windows名字空间的一部分。
使用应用模型的应用以类似于Web页面的方式工作。当用户浏览应用时,自动地安装应用而无需要求用户对安装进行确认、重启客户机系统或承担其他应用出错的风险。在一个实施例中,逐步下载应用,从而在完全下载该应用之前提供初始水平的交互性。应用的更新自动地进行并以对用户透明的方式进行。因此,用户总是能够访问应用的最新版本而无需明确地执行应用升级。
使用应用模型的应用在客户机系统上本地运行,而不管客户机系统是在线(即,活跃地连接到Web)还是离线(即,没有活跃地连接到Web)。这允许应用提供比基于服务器的应用更好的性能,基于服务器的应用需要活跃的Web链接并通过Web和服务器持续地交互数据。在把应用安装到客户机系统上之后,可以通过“开始”菜单(象传统的桌面应用那样)或通过浏览到该应用(象Web应用那样)来访问应用。应用模型包括三个主要部分:应用生命周期管理、应用框架和浏览框架。
应用模型支持两种不同类型的应用:“在线应用”和“管理的应用”。使用应用模型的应用可以在浏览器或独立的顶层窗口中执行。“在线应用”是通过服务器执行并寄宿在服务器中的应用。可以缓冲此应用以进行离线访问或此需要特定的在线资源才能正确执行应用。“管理的应用”是离线提供并安装在客户机上的。操作系统对管理的应用提供服务。可以将管理的应用的入口添加到客户机上的“开始”菜单。可以逐步下载应用,以允许用户在正在下载应用时开始和应用交互,而不是延迟交互直到安装处理完成。
应用具有关联的应用清单,它描述应用的依存关系,如执行应用所需的附加库和资源。安装程序使用应用清单来控制应用的下载和安装。作为安装处理的部分来调用“信任管理器”。信任管理器使用应用清单来确定执行应用需要何种许可。应用清单也指定外壳信息,如文件关联及是否添加入口到开始菜单,以及该入口的图标和文本。
使用应用模型的应用包括标记、代码、资源和清单。应用由其应用对象定义和限定,应用对象是每次应用会话期间持续存储在存储器中全局对象。应用对象知道所有属于应用的资源并提供其自身与其他应用或外部资源之间的边界。应用框架使用应用对象来识别、引用应用,并和应用通讯。应用对象也在应用内使用,以管理窗口和资源、指定启动和关闭行为、处理配置设置、指定应用的可视样式、在浏览之间共享代码、状态和资源,及处理应用范围的事件。
浏览框架支持基于浏览的应用,此类利用用户熟悉浏览操作这一点并将Web上的活动写入日志,以在客户机系统上提供更加熟悉、一致的用户体验,而不管应用是寄宿在系统浏览器中或在独立的顶层窗口中。写日志是由浏览框架用来追踪浏览历史的处理。日志允许用户以线性浏览序列回扫他们向后和向前的步骤。无论浏览体验是寄宿在浏览器中还是在独立的浏览窗口中,每次浏览都持续存储在日志中,并可以通过使用“向前”和“向后”按钮或通过调用“向前”和“向后”方法以线性序列重新访问。每个浏览窗口都有相关联的日志。
NavigationApplication类通过提供和浏览相关的属性和事件简化创建基于浏览的应用的任务。NavigationApplication类包括指定在应用最初启动时系统所浏览的页面或元素的启动属性。这个类也包括允许应用开发者跨页面共享全局状态信息而无需做出应用的子类,并支持到这些属性的数据绑定的属性集合。
示例计算系统和环境
图4展示在其中可以(或者完整或者部分)实现编程框架132的适合的计算环境400的例子。计算环境400可以在这里所述的计算机和网络架构中使用。
例子计算环境400只是计算环境的一个例子且并不意味着对该计算机和网络架构的使用范围或功能有任何限制。也不应将计算环境400解释为对任何一个示例计算环境400中所示的组件或其组合有任何依存关系或需求。
可以用大量其他通用或专用计算系统环境或配置来实现框架132。适合使用的众所周知的计算系统、环境和/或配置的例子包括,但不仅限于,个人计算机、服务器计算机、多处理器系统、基于微处理器的系统、网络PC、小型机、大型机、包括上述任何系统或设备的分布式计算环境等等。该框架的紧凑版本或子集可以在有限资源客户机,如手机、个人数字助理、手持计算机,或其他通讯/计算设备上实现。
框架132可以在计算机可执行指令的通用上下文中说明,如由一个或多个计算机或其他设备执行的程序模块。通常,程序模块包括执行特殊任务或实现特殊抽象数据类型的例程、程序、对象、组件、数据结构等等。框架132也可以实现在分布式计算环境中,在其中任务由通过通讯网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储器存储媒体,包括存储器存储设备。
计算环境400包括形式为计算机402的通用计算设备。计算机402的组件可以包括,但不仅限于,一个或多个处理器或处理单元404、系统存储器406及连接包括处理器404的各种系统组件到系统存储器406的系统总线408。
系统总线408表示几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围设备总线,及使用多种总线结构中的任何一种的处理器或本地总线。作为例子,这样的结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、扩展的ISA(EISA)总线、视频电子标准协会(VESA)总线,及亦称为中层楼总线的周边元件互连(PCI)总线。
计算机402通常包括各种计算机可读媒体。这样的媒体可以为可由计算机402访问任何可用媒体并且包括易失和非易失媒体、可移动和不可移动媒体。
系统存储器406包括形式为易失存储器(如随机访问存储器(RAM)410)和/或非易失存储器(如只读存储器(ROM)412)的计算机可读媒体。包含基本的例程以例如在启动过程中帮助在计算机402的元件之间传输信息的基本输入/输出系统(BIOS)414存储在ROM 412中。RAM 410通常包含可由处理单元404立即访问和/或当前正在操作的数据和/或程序模块。
计算机402也可以包括其他可移动/不可移动、易失/非易失计算机存储媒体。作为例子,图4展示了用于读写不可移动、非易失磁媒体(未示出)的硬盘驱动器416,用于读写可移动、非易失磁盘420(如,“软盘”)的磁盘驱动器418,及用于读和/或写可移动、非易失光盘424(如CD-ROM、DVD-ROM或其他光学媒体)的光盘驱动器422。硬盘驱动器416、磁盘驱动器418和光盘驱动器422中的每个都通过一个或多个数据媒体接口426连接到系统总线408。作为选择,硬盘驱动器416、磁盘驱动器418和光盘驱动器422可以通过一个或多个接口(未示出)连接到系统总线408。
磁盘驱动器及与它们关联的计算机可读媒体向计算机402提供对计算机可读指令、数据结构、程序模块和其他数据的非易失存储。虽然上述例子展示了硬盘416、可移动磁盘420和可移动光盘424,应理解,也可以使用其他类型的可以存储可由计算机访问的数据的计算机可读媒体,如盒式磁带或其他磁存储设备、闪存卡、CD-ROM、数字多用途盘(DVD)或其他光学存储、随机访问存储器(RAM)、只读存储器(ROM)、电子可擦可编程序只读存贮器(EEPROM)等等来实现示例计算系统和环境。
可以在硬盘416、磁盘420、光盘424、ROM 412和/或RAM 410上存储任何数量的程序模块,这包括例如操作系统426、一个或多个应用程序428、其他程序模块430和程序数据432。操作系统426、一个或多个应用程序428、其他程序模块430和程序数据432(或其组合)中的每一个都可以包含编程框架132的元素。
用户可以通过如键盘434和定点设备436(如,“鼠标”)这样的输入设备输入命令和信息到计算机402中。其他输入设备438(未具体示出)包括麦克风、操纵杆、游戏垫、圆盘式卫星电视天线、串行口、扫描仪和/或类似设备。这些和其他输入设备通常通过连接到系统总线408的输入/输出接口440连接到处理单元404,但也可以通过其他接口和总线结构,如并行口、游戏口,或通用串行总线(USB)来连接。
显示设备442或其他显示设备也通过接口,如视频适配器444连接到系统总线408。除显示器442外,其他外围输入设备包括可以通过输入/输出接口440连接到计算机402的组件,如扬声器(未示出)和打印机。
计算机402可以使用到一个或多个远程计算机(如远程计算设备448)的逻辑连接在连网环境中运行。作为例子,远程计算设备448可以是个人计算机、可移动计算机、服务器、路由器、网络PC、对等设备或其他普通网络节点等等。远程计算设备448在图示中是包括在此相对于计算机402所述的很多或所有元件和特性的可移动计算机。
计算机402和远程计算机448之间的逻辑连接包括局域网(LAN)450和广域网(WAN)452。这样的连网环境在办公室范围或企业范围的计算机网络、内联网和因特网中是很常见的。
当用在LAN连网环境中时,计算机402通过网络接口或适配器454与局域网450相连。当用在WAN连环境中时,计算机402通常包括调制解调器456或其他在广域网452上建立通讯的方法。调制解调器456,可以为内置的或外置的,通过输入/输出接口440或其他适当机制连接到系统总线408。应理解所示的网络连接是示范性的且可以使用在计算机402和448之间建立通讯连接的其他方法。
在连网的环境中,如计算环境400所示,相对于计算机402说明的程序模块或其部分可以存储在远程存储器存储设备中。作为例子,远程应用程序458驻留在远程计算机448的存储器设备中。为了说明,应用程序和其他可执行程序组件,如操作系统,在此展示为离散的块,虽然应承认这样的程序和组件以不同的次数驻留在计算设备402中不同的存储组件内,并由计算机的数据处理器执行。
框架132的实施例,更特别地,API 142或对API 142做出的调用可以存储在某种形式的计算机可读媒体上或通过它来发送。计算机可读媒体是可由计算机访问的任何可用媒体。作为例子,而非限制,计算机可读媒体可以包括“计算机存储媒体”和“通讯媒体”。“计算机存储媒体”包括以任何存储信息(如计算机可读指令、数据结构或其他数据)的方法或技术实现的易失和非易失、可移动和不可移动媒体。计算机存储媒体包括,但不仅限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多用途盘(DVD)或其他光学存储、盒式磁带、磁带、磁盘存储或其他磁存储设备,或可以用来存储所需信息并可以由计算机访问的任何其他媒体。
“通讯媒体”通常以调制的数据信号(如载波或其他传输机制)实现计算机可读指令、数据结构、程序模块或其他数据。通讯媒体也包括任何信息发送媒体。术语“调制的数据信号”指设置或改变它的一个或多个属性从而在该信号中编码信息的信号。作为例子,而非限制,通讯媒体包括有线媒体(如有线网络或直接连接)及无线媒体(如声音、无线电、红外线和其他无线媒体)。上述任何媒体的组合也包括在计算机可读媒体的范围之中。
作为选择,框架的部分可以用硬件或硬件、软件和/或固件的组合来实现。例如,可以设计或编程一个或多个专用集成电路(ASIC)或可编程逻辑设备(PLD)来实现该框架的一个或多个部分。
概念上来说,编程接口可以一般地视为如图5或图6所示的那样。图5展示接口1,第一个和第二个代码段将其作为通讯的管道。图6展示由接口对象I1和I2(它可以是第一个和第二个代码段的部分,也可以不是)组成的接口,接口对象I1和I2使得系统的第一个和第二个代码段能够通过媒体M通讯。在图6的视图中,可以将接口对象I1和I2视为同一系统的独立接口,也可以视为对象I1和I2加上媒体M构成了接口。虽然图5和图6展示了在流的每一边都有双向的流和接口,特定的实现可以只包括一个方向上的信息流(或没有如下所述的信息流),或可以在一边只有一个接口对象。作为例子,而非限制,如编程接口或程序接口(API)、入口点、方法、函数、子例程、远程过程调用和组件对象模型(COM)接口这样的术语都包含在编程接口的定义之内,
这样的编程接口的各方面可以包括第一个代码段发送信息(其中“信息”以其最广泛的含义使用并包括数据、命令、请求等等)到第二个代码段的方法;第二个代码段接收信息的方法;及信息的结构、序列、语法、组织、方案、时间和内容。在这点上,只要以由接口定义的方式传输信息,下层传输媒体自身对接口的操作就不重要,无论是有线或无线媒体,还是两者的组合。在特定的情况下,当信息传输可以通过其他机制传输进行(如,将信息存放在独立于代码段之间信息流的缓冲、文件内等等)或不存在,如一个代码段简单地访问由第二个代码段执行的功能时,信息可以不在常规意义上的一个或两个方向上传输。在给定的情况下,任何或所有这些方面都可能很重要,如取决于代码段是否是松散连接或紧密连接配置的系统的一部分,且因此这个列表应被视为是说明性而非限制性的。
编程接口的概念为熟悉技术的人所知,并从上述对本发明的详细说明中可以清楚地理解。然而,存在实现编程接口的其他方法,并且除非明确排除,它们也将包括在说明书后面的权利要求范围内。这样的其他方法会比图5和图6中的简单视图复杂,但是它们执行类似的功能,实现同样的整体效果。下面简要地说明编程接口的一些演示性的替换实现。
A.分解
从一个代码段到另一个代码段的通讯可以通过将通讯划分为多个离散的通讯间接地实现。这在图7和图8中示意性地展示。如所示,某些接口可以根据可划分的功能集合来描述。因此,可以分解图5和图6的接口功能来实现相同的效果,就像可以在数学上提供24或2乘2乘3乘2。因此,如图7所示,可以划分由接口1提供的功能以将该接口的通讯转换到多个接口中:接口1A、接口1B、接口1C等等,而实现相同的效果。如图8所示,由接口I1提供的功能可以划分为多个接口I1a、I1b、I1c等等而实现相同的效果。类似地,第二个代码段的接收来自第一个代码段的信息的接口I2可以分解为多个接口:I2a、I2b、I2c等等。当分解时,包括在第一个代码段内的接口数量不需要和包括在第二个代码段中的接口数量匹配。在图7与图8中,接口1和I1的功能大意各自保持和图5与图6相同。接口的分解也可以遵循关联、交换和其他数学属性以使得分解难以识别。例如,操作的顺序可能不重要,并且因此由一个接口执行的功能可以在达到该接口之前由另外的代码或接口执行,或由系统的独立组件执行。再者,有普通编程技术水平的人可以理解,存在做出实现相同效果的不同函数调用的各种方法。
B.定义
在某些情况下,可能忽略、增加或修订编程接口的特定方面(如参数)而仍然实现预定结果。这在图9和图10中展示。例如,假设图5的接口1包括函数调用Square(input,precision,output),该调用包括三个参数,input、precision和output,且从第一个代码段将其提交到第二个代码段。如果在给定的情景下不关心中间的参数precision,则如图9所示,可以忽略它或甚至用无意义的参数(在此情况)来替换它。也可以增加不关心的附加参数。在两种情况中,平方的功能都可以实现,只要在输入由第二个代码段平方后返回输出。对某些下游或计算系统的其他部分,Precision可能是有意义的参数;然而,一旦认为对计算平方的有限目的不需要precision,则可以替换它或忽略它。例如,可以传递无意义的值,如出生率,而不是传递合法的precision值,但不会对结果产生负面影响。类似地,如图10所示,接口I1由接口I1’替换,修订为忽略或增加参数到该接口。接口I2可以类似地修订为接口I2’,修订为忽略不需要的参数或可以在别处处理的参数。这里的关键是在某些情况下编程接口可以包括对某些目的不需要的方面,如参数,从而对其他目的可以忽略或修订或在别处处理它们。
C.内联编码
合并两个独立代码模块的部分或全部功能,以使得它们之间的“接口”改变形式也是可行的。例如,图5和6的功能各自可以转换为图11和12的功能。在图11中,前面图5中的第一个和第二个代码段合并为一个包含两者的模块。在此情况,代码段仍然彼此通讯,但是接口可能采取更加适合于单个模块的形式。因此,例如,可能不再需要正式的调用和返回语句,但是按照接口1进行的类似处理或响应仍然有效。类似地,如图12所示,图6的接口I2的部分(或全部)可以内联写入到接口I1中以构成接口I1”。如所示,接口I2被划分为I2a和I2b,接口部分I2a已用接口I1内联编码来构成接口I1”。对实际的例子,考虑图6的接口I1执行函数调用square(input,output),它由接口I2接收,接口I2在用第二个代码段处理通过input传递的值(对其进行平方)之后,用output传回平方的结果。在这样的情况下,由第二个代码段执行的处理(平方input)可以由第一个代码段执行而不调用该接口。
D.分离
从一个代码段到另一个代码段的通讯可以通过将通讯分解为多个离散的通讯间接地实现。这在图13和图14中展示。如图13所示,提供一个或多个中间件(分离接口,由于它们从初始的接口分离功能和/或接口函数)以转换第一个接口(接口1)上的通讯,使之符合不同的接口,在此例中为接口2A、接口2B和接口2C。在安装了设计为根据接口1的协议和操作系统通讯的应用,但是操作系统改变为使用不同的接口(在此例中为接口2A、接口2B和接口2C)时,可以实现这样的结构。关键是由第二个代码段使用的初始的接口发生了改变,从而它不再和第一个代码段使用的接口兼容,因此使用中间层以使得旧接口和新接口兼容。类似地,如图14所示,可以引入第三个代码段,从而用分离接口DI1接收来自接口I1的通讯,用分离接口DI2发送接口功能到,例如,重新设计为对DI2工作但是提供相同的功能效果的接口I2a和I2b。类似地,DI1和DI2可以共同工作以将图6的接口I1和I2的功能转换到新的操作系统,而提供相同或近似的功能效果。
E.重写
另一种可能的情况是动态地重写代码以用其他实现相同总体效果的代码替换接口功能。例如,存在这样的系统,它们在(如由.Net框架、Java运行库环境,或其他类似的运行时类型环境提供的)执行环境中向运行时编译执行的(JIT)编译器或解释器提供以中间语言(如Microsoft IL、Java字节码等等)出现的代码段。可以写出JIT编译器,以动态地转换从第一个代码段到第二个代码段的通讯,即,符合如第二个代码段(初始的或不同的第二个代码段)所要求的不同的接口。这在图15和16中展示。如图15所示,此方法类似于上述的分离情况。在安装了设计为根据接口1的协议和操作系统通讯的应用,但是操作系统改变为使用不同的接口时,可以实现这样的结构。可以使用JIT编译器即时使得来自安装的应用的通讯符合操作系统的新接口。如图16所示,这种动态地重写接口的方法可以应用于动态的因素,或相反地修改这些接口。
应注意通过替换实施例实现和接口相同或类似的效果的上述情景也可以根据各种方法进行组合,串行和/或并行、或用其他中介代码。因此,上述替换实施例不是互斥的,且可以混合、匹配并合并,以产生与图5和图6所展示的通用情景相同或等价的情景。也应注意,对多数编程结构,存在实现和接口相同或类似功能的其他类似方法,没有在此对他们进行说明,但是它们由本发明的精神和范围所代表,即,应注意它至少是由支撑接口价值的接口表示的部分功能及其带来的优点。
结论
虽然已用特定于结构特性和/或方法动作的语言对本发明进行了说明,应理解在所附的权利要求中定义的本发明不限于所述的具体特性或动作。相反,所揭示的具体特性和动作是实现所请求的发明的示范形式。

Claims (50)

1.一种用于创建应用程序的方法,包括:
使用第一组服务以用于产生将被包含在一个正被编程的应用程序中的图形组件;
使用第二组服务以用于在正被编程的应用程序中绑定类属性到数据源;及
使用第三组服务以用于在正被编程的应用程序中格式化内容。
2.如权利要求1所述的方法,其特征在于,所述第一组服务包括确定图形组件外观的服务。
3.如权利要求1所述的方法,其特征在于,所述第一组服务包括确定图形组件行为的服务。
4.如权利要求1所述的方法,其特征在于,所述第一组服务包括确定图形组件安排的服务。
5.如权利要求1所述的方法,其特征在于,所述第一组服务包括多个嵌套的定义图形组件的原类型控件。
6.如权利要求1所述的方法,其特征在于,所述图形组件由矢量图形定义。
7.如权利要求1所述的方法,其特征在于,进一步包括使用用于用动画呈现至少一个图形组件的第四组服务。
8.如权利要求1所述的方法,其特征在于,进一步包括使用用于创建具有浏览能力的应用程序的第四组服务。
9.如权利要求1所述的方法,其特征在于,进一步包括使用用于支持电子墨水处理系统的第四组服务。
10.如权利要求1所述的方法,其特征在于,进一步包括使用用于组合多种不同媒体类型的第四组服务。
11.如权利要求1所述的方法,其特征在于,进一步包括使用用于使用浏览器类型的接口在客户机上执行应用程序的第四组服务。
12.如权利要求1所述的方法,其特征在于,进一步包括使用用于自动地安装和执行应用程序的第四组服务。
13.如权利要求1所述的方法,其特征在于,进一步包括使用用于序列化内容的第四组服务。
14.如权利要求1所述的方法,其特征在于,进一步包括使用用于自动化用户接口的产生的第四组服务。
15.一种用于创建应用程序的方法,包括:
使用第一组编程服务以在显示内容之前格式化该内容,所述内容将被包含在正被创建的应用程序中;
使用第二组编程服务以在所创建的应用程序中绑定类属性到数据源;及
使用第三组编程服务以产生图像效果,所述图像效果将被包含在所述应用程序中。
16.如权利要求15所述的方法,其特征在于,所述第一组编程服务包括安排多个数据元素。
17.如权利要求15所述的方法,其特征在于,所述第三组编程服务包括用动画呈现至少一个图形项。
18.如权利要求15所述的方法,其特征在于,进一步包括使用要被包含在所述应用程序中的第四组编程服务,其允许应用程序的用户在多个图形之间浏览。
19.如权利要求15所述的方法,其特征在于,进一步包括使用用于编辑被包含在所述被创建的应用程序中的原先创建的内容的第四组编程服务。
20.如权利要求15所述的方法,其特征在于,进一步包括使用用于管理从输入设备接收的输入的第四组编程服务。
21.如权利要求15所述的方法,其特征在于,进一步包括使用用于支持与其他计算系统之间的互操作性的第四组编程服务。
22.一种用于创建应用程序的方法,包括:
使用第一组服务以产生图形对象以用于正被创建的应用程序中;
使用第二组服务以创建图形对象组件以用于被包括在所创建的应用程序中;及
使用第三组服务以修改图形对象外观。
23.如权利要求22所述的方法,其特征在于,所述第一组服务包括用于定义所创建的应用程序中的至少一个图形对象的行为的服务。
24.如权利要求22所述的方法,其特征在于,所述第一组服务包括用于定义图形对象的安排的服务。
25.如权利要求22所述的方法,其特征在于,所述修改图形对象的外观包括用动画呈现图形对象。
26.如权利要求22所述的方法,其特征在于,所述第二组服务包括用于产生几何形状的服务。
27.如权利要求22所述的方法,其特征在于,进一步包括使用用于格式化文本的第四组服务。
28.一种用于创建应用程序的方法,其特征在于,所述方法包括:
调用一个或多个第一函数以用于格式化数据,所述数据将被包含在应用程序中;
调用一个或多个第二函数以用于在所述应用程序中创建图形对象;及
调用一个或多个第三函数以用于在所述应用程序中改变图形对象的外观。
29.如权利要求28所述的方法,其特征在于,进一步包括调用一个或多个第四函数以用于使用多个图形对象产生用户接口。
30.如权利要求28所述的方法,其特征在于,进一步包括调用一个或多个第四函数以用于用户接口的运行时创建。
31.如权利要求28所述的方法,其特征在于,进一步包括:
调用一个或多个第四函数以使用多个要被包含在应用程序中的图形对象产生用户接口;及
调用一个或多个第五函数以用于用户接口的运行时创建。
32.如权利要求28所述的方法,其特征在于,所述第一函数帮助:
接收用户输入;及
在显示屏上安排数据元素。
33.如权利要求28所述的方法,其特征在于,所述第二函数被配置成用于产生几何形状。
34.如权利要求28所述的方法,其特征在于,所述第二函数被配置成用于产生至少一个几何形状,且所述第三函数被配置成用于修改所述几何形状的外观。
35.一种用于创建应用程序的系统,其特征在于,所述系统包括:
用于展现支持创建多个几何形状的第一组函数的装置,从而使得多个几何形状被配置以用于被包含在正被创建的应用程序中;
用于展现支持改变安排几何形状的方式的第二组函数的装置;及
用于展现支持修改几何形状外观的第三组函数的装置。
36.如权利要求35所述的系统,其特征在于,所述第二组函数进一步支持在将呈现的页面上安排几何形状。
37.如权利要求35所述的系统,其特征在于,所述多个几何形状包括直线。
38.如权利要求35所述的系统,其特征在于,所述第三组函数进一步支持关联图像效果和至少一个几何形状。
39.如权利要求35所述的系统,其特征在于,所述第三组函数进一步支持在一段时间上改变特殊几何形状的外观。
40.如权利要求35所述的系统,其特征在于,进一步包括用于展现支持使用多个几何形状产生用户接口的第四组函数的装置。
41.如权利要求35所述的系统,其特征在于,进一步包括用于展现支持关联图形对象和一个或多个数据源的第四组函数的装置。
42.如权利要求35所述的系统,其特征在于,进一步包括用于展现支持显示图形对象特定于数据的版本的第四组函数的装置。
43.一种用于创建应用程序的方法,其特征在于,所述方法包括:
调用一个或多个第一函数以用于创建图形对象的组件;
调用一个或多个第二函数以用于产生图形对象,所述图形对象用于被包含在正被编程的应用程序中;
调用一个或多个第三函数以用于修改图形对象的外观;
调用一个或多个第四函数以用于安排图形对象;及
调用一个或多个第五函数以用于关联图形对象和数据源。
44.如权利要求43所述的方法,其特征在于,进一步包括调用一个或多个第六函数以用于在内容的多个显示之间进行浏览。
45.如权利要求43所述的方法,其特征在于,所述图形对象的组件包括多种形状。
46.如权利要求43所述的方法,其特征在于,所述第三函数包括修改特殊图形对象外观的函数。
47.如权利要求43所述的方法,其特征在于,所述第三函数包括修改一个或多个图形对象组件的外观的函数。
48.如权利要求43所述的方法,其特征在于,所述第三函数包括将图形对象移动到显示屏上的不同位置的函数。
49.如权利要求43所述的方法,其特征在于,所述第三函数修改图形对象的外观以响应用户输入。
50.如权利要求43所述的方法,其特征在于,所述第四函数修改图形对象的安排以响应用户输入。
CNB2004100785041A 2003-10-24 2004-09-13 用于创建应用程序的系统及方法 Expired - Fee Related CN100530083C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/694,080 2003-10-24
US10/694,080 US20050091576A1 (en) 2003-10-24 2003-10-24 Programming interface for a computer platform

Publications (2)

Publication Number Publication Date
CN1609792A CN1609792A (zh) 2005-04-27
CN100530083C true CN100530083C (zh) 2009-08-19

Family

ID=34465630

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100785041A Expired - Fee Related CN100530083C (zh) 2003-10-24 2004-09-13 用于创建应用程序的系统及方法

Country Status (16)

Country Link
US (2) US20050091576A1 (zh)
EP (1) EP1536327A3 (zh)
JP (1) JP2005135384A (zh)
KR (1) KR101031700B1 (zh)
CN (1) CN100530083C (zh)
AU (1) AU2004205327B2 (zh)
BR (1) BRPI0407050A (zh)
CA (1) CA2481590A1 (zh)
IL (1) IL164072A (zh)
MX (1) MXPA04008849A (zh)
NO (1) NO20043781L (zh)
NZ (1) NZ535217A (zh)
RU (1) RU2371758C2 (zh)
SG (1) SG111201A1 (zh)
TW (1) TWI366105B (zh)
ZA (1) ZA200407299B (zh)

Families Citing this family (279)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091576A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
US6753885B2 (en) 2000-04-06 2004-06-22 Microsoft Corporation System and theme file format for creating visual styles
US6873337B1 (en) * 2000-04-06 2005-03-29 Microsoft Corporation Application programming interface for changing the visual style
US20010048448A1 (en) * 2000-04-06 2001-12-06 Raiz Gregory L. Focus state themeing
US9256356B2 (en) * 2001-03-29 2016-02-09 International Business Machines Corporation Method and system for providing feedback for docking a content pane in a host window
US6826729B1 (en) * 2001-06-29 2004-11-30 Microsoft Corporation Gallery user interface controls
US8132115B2 (en) * 2003-02-27 2012-03-06 Autodesk, Inc. Dynamic properties for software objects
US7313764B1 (en) 2003-03-06 2007-12-25 Apple Inc. Method and apparatus to accelerate scrolling for buffered windows
US7155440B1 (en) * 2003-04-29 2006-12-26 Cadence Design Systems, Inc. Hierarchical data processing
US9715678B2 (en) 2003-06-26 2017-07-25 Microsoft Technology Licensing, Llc Side-by-side shared calendars
US7707255B2 (en) * 2003-07-01 2010-04-27 Microsoft Corporation Automatic grouping of electronic mail
US7716593B2 (en) * 2003-07-01 2010-05-11 Microsoft Corporation Conversation grouping of electronic mail records
US8799808B2 (en) 2003-07-01 2014-08-05 Microsoft Corporation Adaptive multi-line view user interface
CA2451164C (en) * 2003-09-11 2016-08-30 Teamplate Inc. Customizable components
CA2443454A1 (en) * 2003-09-11 2005-03-11 Teamplate Inc. Data binding method in workflow system
US7219340B2 (en) * 2003-10-23 2007-05-15 Microsoft Corporation Changeable class and pattern to provide selective mutability in computer programming environments
US7187380B2 (en) * 2003-10-30 2007-03-06 Hewlett-Packard Development Company, L.P. Telecommunications graphical service program
US7216127B2 (en) * 2003-12-13 2007-05-08 International Business Machines Corporation Byte stream organization with improved random and keyed access to information structures
GB2411331A (en) * 2004-02-19 2005-08-24 Trigenix Ltd Rendering user interface using actor attributes
US7181464B2 (en) * 2004-02-20 2007-02-20 Microsoft Corporation Forward-only evaluation for XPATH inverse query processing
US8241905B2 (en) 2004-02-24 2012-08-14 The Curators Of The University Of Missouri Self-assembling cell aggregates and methods of making engineered tissue using the same
US20050204368A1 (en) * 2004-03-09 2005-09-15 Venu Ambekar Executable application interoperability and interface creation system
US20050229048A1 (en) * 2004-03-30 2005-10-13 International Business Machines Corporation Caching operational code in a voice markup interpreter
US20050231512A1 (en) * 2004-04-16 2005-10-20 Niles Gregory E Animation of an object using behaviors
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US9098476B2 (en) * 2004-06-29 2015-08-04 Microsoft Technology Licensing, Llc Method and system for mapping between structured subjects and observers
US7275211B2 (en) * 2004-07-02 2007-09-25 Cognos Incorporated Rendering page sets
US7411590B1 (en) * 2004-08-09 2008-08-12 Apple Inc. Multimedia file format
US7703036B2 (en) 2004-08-16 2010-04-20 Microsoft Corporation User interface for displaying selectable software functionality controls that are relevant to a selected object
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
US9015621B2 (en) 2004-08-16 2015-04-21 Microsoft Technology Licensing, Llc Command user interface for displaying multiple sections of software functionality controls
US8117542B2 (en) 2004-08-16 2012-02-14 Microsoft Corporation User interface for displaying selectable software functionality controls that are contextually relevant to a selected object
US7895531B2 (en) 2004-08-16 2011-02-22 Microsoft Corporation Floating command object
US8146016B2 (en) 2004-08-16 2012-03-27 Microsoft Corporation User interface for displaying a gallery of formatting options applicable to a selected object
US7747966B2 (en) 2004-09-30 2010-06-29 Microsoft Corporation User interface for providing task management and calendar information
US7707498B2 (en) * 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7653721B1 (en) * 2004-10-29 2010-01-26 Sun Microsystems, Inc. Mechanism for capturing high level events on user interface components
US20060136877A1 (en) * 2004-12-22 2006-06-22 International Business Machines Corporation Method, system and program product for capturing a semantic level state of a program
US7730394B2 (en) * 2005-01-06 2010-06-01 Microsoft Corporation Data binding in a word-processing application
US7945590B2 (en) * 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7617234B2 (en) * 2005-01-06 2009-11-10 Microsoft Corporation XML schema for binding data
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7668873B2 (en) 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7512892B2 (en) * 2005-03-04 2009-03-31 Microsoft Corporation Method and system for displaying and interacting with paginated content
US7844958B2 (en) * 2005-03-11 2010-11-30 Aptana, Inc. System and method for creating target byte code
US8135750B2 (en) * 2005-04-22 2012-03-13 Microsoft Corporation Efficiently describing relationships between resources
US7386558B2 (en) * 2005-04-22 2008-06-10 Microsoft Corporation Methods and systems for filtering an Extensible Application Markup Language (XAML) file to facilitate indexing of the logical content contained therein
US9507919B2 (en) * 2005-04-22 2016-11-29 Microsoft Technology Licensing, Llc Rights management system for streamed multimedia content
CN101248405B (zh) * 2005-04-29 2010-09-15 微软公司 使用并发域的多线程化
US7587671B2 (en) * 2005-05-17 2009-09-08 Palm, Inc. Image repositioning, storage and retrieval
CN101305350A (zh) 2005-06-09 2008-11-12 惠而浦公司 与家用电器内的至少一个部件通信以及对其进行管理的软件体系系统和方法
US7886290B2 (en) * 2005-06-16 2011-02-08 Microsoft Corporation Cross version and cross product user interface
US7853605B2 (en) * 2005-07-29 2010-12-14 Microsoft Corporation Auxiliary data provider
US8239882B2 (en) * 2005-08-30 2012-08-07 Microsoft Corporation Markup based extensibility for user interfaces
US8689137B2 (en) 2005-09-07 2014-04-01 Microsoft Corporation Command user interface for displaying selectable functionality controls in a database application
US7953696B2 (en) * 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
US9542667B2 (en) 2005-09-09 2017-01-10 Microsoft Technology Licensing, Llc Navigating messages within a thread
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US7861219B2 (en) 2005-09-12 2010-12-28 Microsoft Corporation Script application framework
US8392151B1 (en) * 2005-09-28 2013-03-05 The Mathworks, Inc. Preview of an object in graphical modeling environments
US8095565B2 (en) * 2005-12-05 2012-01-10 Microsoft Corporation Metadata driven user interface
US7603260B2 (en) * 2005-12-29 2009-10-13 Sap Ag Object model for initiating physical operations
US7987456B2 (en) * 2006-01-24 2011-07-26 Microsoft Corporation Qualitatively annotated code
US7818660B2 (en) * 2006-01-29 2010-10-19 Litera Technology Llc Method of compound document comparison
US8601437B2 (en) * 2006-02-15 2013-12-03 Microsoft Corporation Reusable component data persistence using a markup language
US20070211056A1 (en) * 2006-03-08 2007-09-13 Sudip Chakraborty Multi-dimensional data visualization
KR100754211B1 (ko) * 2006-03-15 2007-09-03 삼성전자주식회사 멀티태스킹을 위한 사용자 인터페이스 방법 및 그 방법을수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
US8972534B2 (en) * 2006-04-12 2015-03-03 International Business Machines Corporation Adjusting software settings
DE102006019917B4 (de) * 2006-04-28 2013-10-10 Airbus Operations Gmbh Verfahren und Vorrichtung zur Sicherung der Maßhaltigkeit von mehrsegmentigen Konstruktionsstrukturen beim Zusammenbau
WO2007134265A2 (en) * 2006-05-12 2007-11-22 Captaris, Inc. Workflow data binding
US9727989B2 (en) 2006-06-01 2017-08-08 Microsoft Technology Licensing, Llc Modifying and formatting a chart using pictorially provided chart elements
US8605090B2 (en) * 2006-06-01 2013-12-10 Microsoft Corporation Modifying and formatting a chart using pictorially provided chart elements
US7783686B2 (en) * 2006-06-16 2010-08-24 Microsoft Corporation Application program interface to manage media files
US7865481B2 (en) * 2006-06-29 2011-01-04 International Business Machines Corporation Changing documents to include changes made to schemas
US20090024958A1 (en) * 2006-08-09 2009-01-22 Kyocera Mita Corporation Program product including display control program and computer-readable media, display device, display control method, and image forming apparatus
JP4143661B2 (ja) * 2006-09-11 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム
US20080091409A1 (en) * 2006-10-16 2008-04-17 Microsoft Corporation Customizable mathematic expression parser and evaluator
TWI396133B (zh) * 2006-10-24 2013-05-11 Sino Wealth Electronic Ltd 程式碼自動生成裝置及方法
KR101288970B1 (ko) * 2006-11-28 2013-07-24 삼성전자주식회사 렌더링 장치 및 방법
GB0624582D0 (en) * 2006-12-08 2007-01-17 Visible Computing Ltd USB autorun devices
KR100827241B1 (ko) * 2006-12-18 2008-05-07 삼성전자주식회사 동적 영상물을 생성하기 위한 템플릿을 편집하는 장치 및방법
US8732595B2 (en) * 2007-01-18 2014-05-20 Sap Ag Condition editor for business process management and business activity monitoring
US7761783B2 (en) * 2007-01-19 2010-07-20 Microsoft Corporation Document performance analysis
US7676524B2 (en) * 2007-01-31 2010-03-09 Microsoft Corporation Hierarchical cursor-based object model
US20080186307A1 (en) * 2007-02-05 2008-08-07 Yaron Leifenberg Method and a protocol for describing procedural content for games
US8347206B2 (en) * 2007-03-15 2013-01-01 Microsoft Corporation Interactive image tagging
US20080256514A1 (en) * 2007-04-10 2008-10-16 Microsoft Corporation Side-by-side application manifests for single-purpose applications
US8650489B1 (en) * 2007-04-20 2014-02-11 Adobe Systems Incorporated Event processing in a content editor
US9547415B2 (en) * 2007-04-30 2017-01-17 Oracle International Corporation Suite-wide navigation
US8386923B2 (en) * 2007-05-08 2013-02-26 Canon Kabushiki Kaisha Document generation apparatus, method, and storage medium
US8156509B2 (en) * 2007-06-05 2012-04-10 International Business Machines Corporation Exchanging data using data transformation
US8065628B2 (en) 2007-06-25 2011-11-22 Microsoft Corporation Dynamic user interface for previewing live content
US8315482B2 (en) * 2007-06-26 2012-11-20 Microsoft Corporation Integrated platform for user input of digital ink
US8041120B2 (en) * 2007-06-26 2011-10-18 Microsoft Corporation Unified digital ink recognition
US8094939B2 (en) 2007-06-26 2012-01-10 Microsoft Corporation Digital ink-based search
US8762880B2 (en) * 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US8201103B2 (en) 2007-06-29 2012-06-12 Microsoft Corporation Accessing an out-space user interface for a document editor program
US8484578B2 (en) 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
US8232901B2 (en) * 2007-06-29 2012-07-31 International Business Machines Corporation Determining an alternative character string
JP4342578B2 (ja) * 2007-07-24 2009-10-14 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置およびプログラム
US20090037829A1 (en) * 2007-08-01 2009-02-05 Microsoft Corporation Framework to integrate web services with on-premise software
US8914774B1 (en) 2007-11-15 2014-12-16 Appcelerator, Inc. System and method for tagging code to determine where the code runs
US20090132919A1 (en) * 2007-11-15 2009-05-21 International Business Machines Corporation Appending Hover Help to Hover Help for a User Interface
US20090132994A1 (en) * 2007-11-16 2009-05-21 Microsoft Corporation Automation tool and method for generating test code
US8954989B1 (en) 2007-11-19 2015-02-10 Appcelerator, Inc. Flexible, event-driven JavaScript server architecture
US8260845B1 (en) 2007-11-21 2012-09-04 Appcelerator, Inc. System and method for auto-generating JavaScript proxies and meta-proxies
US8719451B1 (en) 2007-11-23 2014-05-06 Appcelerator, Inc. System and method for on-the-fly, post-processing document object model manipulation
US8566807B1 (en) 2007-11-23 2013-10-22 Appcelerator, Inc. System and method for accessibility of document object model and JavaScript by other platforms
US8819539B1 (en) 2007-12-03 2014-08-26 Appcelerator, Inc. On-the-fly rewriting of uniform resource locators in a web-page
US8756579B1 (en) 2007-12-03 2014-06-17 Appcelerator, Inc. Client-side and server-side unified validation
US8806431B1 (en) 2007-12-03 2014-08-12 Appecelerator, Inc. Aspect oriented programming
US8938491B1 (en) 2007-12-04 2015-01-20 Appcelerator, Inc. System and method for secure binding of client calls and server functions
US8527860B1 (en) 2007-12-04 2013-09-03 Appcelerator, Inc. System and method for exposing the dynamic web server-side
US8639743B1 (en) 2007-12-05 2014-01-28 Appcelerator, Inc. System and method for on-the-fly rewriting of JavaScript
US8285813B1 (en) 2007-12-05 2012-10-09 Appcelerator, Inc. System and method for emulating different user agents on a server
US8335982B1 (en) 2007-12-05 2012-12-18 Appcelerator, Inc. System and method for binding a document object model through JavaScript callbacks
US20090158181A1 (en) * 2007-12-18 2009-06-18 Mellmo Llc User interface method and apparatus to navigate a document file
US8473276B2 (en) * 2008-02-19 2013-06-25 Google Inc. Universal language input
US20090235161A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Lossless Web-Based Editor For Complex Documents
US9753712B2 (en) * 2008-03-20 2017-09-05 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US9600261B2 (en) * 2008-03-25 2017-03-21 Qualcomm Incorporated Apparatus and methods for widget update scheduling
US9269059B2 (en) * 2008-03-25 2016-02-23 Qualcomm Incorporated Apparatus and methods for transport optimization for widget content delivery
US9110685B2 (en) * 2008-03-25 2015-08-18 Qualcomm, Incorporated Apparatus and methods for managing widgets in a wireless communication environment
US9069575B2 (en) 2008-03-25 2015-06-30 Qualcomm Incorporated Apparatus and methods for widget-related memory management
US9747141B2 (en) * 2008-03-25 2017-08-29 Qualcomm Incorporated Apparatus and methods for widget intercommunication in a wireless communication environment
US9588781B2 (en) 2008-03-31 2017-03-07 Microsoft Technology Licensing, Llc Associating command surfaces with multiple active components
US8438539B2 (en) * 2008-04-11 2013-05-07 International Business Machines Corporation Using a menu slideshow framework for generating a custom menu-driven slideshow containing definable content
US9052924B2 (en) * 2008-04-15 2015-06-09 Microsoft Technology Licensing, Llc Light-weight managed composite control hosting
US8490050B2 (en) * 2008-04-17 2013-07-16 Microsoft Corporation Automatic generation of user interfaces
US8140593B2 (en) * 2008-05-15 2012-03-20 Microsoft Corporation Data viewer management
US8291079B1 (en) 2008-06-04 2012-10-16 Appcelerator, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8880678B1 (en) 2008-06-05 2014-11-04 Appcelerator, Inc. System and method for managing and monitoring a web application using multiple cloud providers
US20090315894A1 (en) * 2008-06-18 2009-12-24 Microsoft Corporation Browser-independent animation engines
US9665850B2 (en) 2008-06-20 2017-05-30 Microsoft Technology Licensing, Llc Synchronized conversation-centric message list and message reading pane
US8402096B2 (en) 2008-06-24 2013-03-19 Microsoft Corporation Automatic conversation techniques
KR101612049B1 (ko) 2008-06-24 2016-04-14 더 큐레이터스 오브 더 유니버시티 오브 미주리 자가-조립가능 다세포체 및 이들을 이용하여 3차원 생물학적 구조체를 생산하는 방법
US9081590B2 (en) * 2008-06-24 2015-07-14 Microsoft Technology Licensing, Llc Multimodal input using scratchpad graphical user interface to edit speech text input with keyboard input
CN101296198B (zh) * 2008-06-25 2010-07-14 腾讯科技(深圳)有限公司 一种在即时通信窗口中插入丰富界面元素的方法及客户端
US9639331B2 (en) 2008-07-09 2017-05-02 International Business Machines Corporation Service interface creation and modification for object-oriented services
US9471406B2 (en) * 2008-07-09 2016-10-18 International Business Machines Corporation Remote product invocation framework
US7596620B1 (en) 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8294723B2 (en) 2008-11-07 2012-10-23 Google Inc. Hardware-accelerated graphics for web applications using native code modules
US8675000B2 (en) * 2008-11-07 2014-03-18 Google, Inc. Command buffers for web-based graphics rendering
US8478798B2 (en) * 2008-11-10 2013-07-02 Google Inc. Filesystem access for web applications and native code modules
US7984332B2 (en) * 2008-11-17 2011-07-19 Microsoft Corporation Distributed system checker
US8495074B2 (en) 2008-12-30 2013-07-23 Apple Inc. Effects application based on object clustering
US8639086B2 (en) 2009-01-06 2014-01-28 Adobe Systems Incorporated Rendering of video based on overlaying of bitmapped images
US10685177B2 (en) * 2009-01-07 2020-06-16 Litera Corporation System and method for comparing digital data in spreadsheets or database tables
US8799790B2 (en) * 2009-02-18 2014-08-05 Kyocera Document Solutions Inc. Computer-readable recording medium storing driver program, image forming system, image forming apparatus, method for controlling image forming apparatus, and driver program
US20100235769A1 (en) * 2009-03-16 2010-09-16 Microsoft Corporation Smooth layout animation of continuous and non-continuous properties
US8136031B2 (en) 2009-03-17 2012-03-13 Litera Technologies, LLC Comparing the content of tables containing merged or split cells
WO2010107476A1 (en) * 2009-03-19 2010-09-23 Duke University Inhibiting gsnor
US8799353B2 (en) * 2009-03-30 2014-08-05 Josef Larsson Scope-based extensibility for control surfaces
US9046983B2 (en) 2009-05-12 2015-06-02 Microsoft Technology Licensing, Llc Hierarchically-organized control galleries
US8797337B1 (en) * 2009-07-02 2014-08-05 Google Inc. Graphics scenegraph rendering for web applications using native code modules
US20110119479A1 (en) * 2009-11-17 2011-05-19 Robert Cowie EOOBE-Application to collect information for new computer and manufacturing process
US9137206B2 (en) * 2009-11-20 2015-09-15 International Business Machines Corporation Service registry for saving and restoring a faceted selection
US20110126113A1 (en) * 2009-11-23 2011-05-26 c/o Microsoft Corporation Displaying content on multiple web pages
CN101719902B (zh) * 2009-12-04 2014-07-30 深圳创维数字技术股份有限公司 一种远程过程调用方法和系统
US8631333B2 (en) 2010-06-07 2014-01-14 Microsoft Corporation Feature set differentiation by tenant and user
US8302014B2 (en) 2010-06-11 2012-10-30 Microsoft Corporation Merging modifications to user interface components while preserving user customizations
US9213661B2 (en) * 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
CN101876917A (zh) * 2010-07-02 2010-11-03 深圳市迅雷网络技术有限公司 一种开发控件的方法及装置
KR20120010047A (ko) * 2010-07-23 2012-02-02 삼성전자주식회사 이메일 처리 방법 및 장치
US9013488B2 (en) 2010-10-19 2015-04-21 Apple Inc. Grouping items in a folder
CN101957759B (zh) * 2010-10-21 2013-02-06 江苏科技大学 一种sdk接口转换系统及其实现方法
EP2629975B1 (en) 2010-10-21 2022-03-09 Organovo, Inc. Devices for the fabrication of tissue
US8793706B2 (en) 2010-12-16 2014-07-29 Microsoft Corporation Metadata-based eventing supporting operations on data
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US20110119575A1 (en) * 2010-12-28 2011-05-19 Whitmyer Jr Wesley W Fit-to function for document processing
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US8893033B2 (en) * 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
CN102810041B (zh) * 2011-06-02 2015-11-18 深圳市金蝶友商电子商务服务有限公司 一种多文档界面的转换方法以及相关装置
US20130031076A1 (en) * 2011-07-28 2013-01-31 Kikin, Inc. Systems and methods for contextual searching of semantic entities
US20130055200A1 (en) * 2011-08-30 2013-02-28 Microsoft Corporation Application interface for object build information
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US8922575B2 (en) 2011-09-09 2014-12-30 Microsoft Corporation Tile cache
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
RU2466452C1 (ru) * 2011-09-14 2012-11-10 Российская Федерация, от имени которой выступает Министерство промышленности и торговли Российской Федерации (Минпромторг РФ) Конвейерная система автоматизированного конструирования с виртуальными рабочими местами
US20130110661A1 (en) * 2011-10-28 2013-05-02 Microsoft Corporation Application store delivered platform components
US8954475B2 (en) * 2011-11-10 2015-02-10 Microsoft Technology Licensing, Llc Deep cloning of objects using binary format
US8775936B2 (en) * 2011-12-13 2014-07-08 International Business Machines Corporation Displaying dynamic and shareable help data for images a distance from a pointed-to location
US9990347B2 (en) 2012-01-23 2018-06-05 Microsoft Technology Licensing, Llc Borderless table detection engine
WO2013110287A1 (en) 2012-01-23 2013-08-01 Microsoft Corporation Vector graphics classification engine
US9499779B2 (en) 2012-04-20 2016-11-22 Organovo, Inc. Devices, systems, and methods for the fabrication of tissue utilizing UV cross-linking
US10109255B2 (en) 2012-06-05 2018-10-23 Apple Inc. Method, system and apparatus for dynamically generating map textures
US9349205B2 (en) 2012-06-08 2016-05-24 Apple Inc. Systems and methods for animating between collection views
US9342518B1 (en) * 2012-06-21 2016-05-17 Emc Corporation Declaring directives in a data store
JP2015523816A (ja) 2012-07-13 2015-08-13 華為技術有限公司Huawei Technologies Co.,Ltd. コンテンツ転送および配信におけるコンテンツ暗号化および権利管理のシグナリングおよびハンドリング
CN103678340B (zh) * 2012-09-07 2016-09-14 腾讯科技(深圳)有限公司 浏览器引擎的运行方法、装置、浏览器及终端
US20140136937A1 (en) * 2012-11-09 2014-05-15 Microsoft Corporation Providing and procuring worksheet functions through an online marketplace
US9953008B2 (en) 2013-01-18 2018-04-24 Microsoft Technology Licensing, Llc Grouping fixed format document elements to preserve graphical data semantics after reflow by manipulating a bounding box vertically and horizontally
US9123086B1 (en) 2013-01-31 2015-09-01 Palantir Technologies, Inc. Automatically generating event objects from images
US9552347B1 (en) * 2013-02-26 2017-01-24 Ca, Inc. Data grid cell styling systems and methods
US9575634B2 (en) * 2013-03-04 2017-02-21 Facebook, Inc. Techniques for asynchronous rendering
US9563448B2 (en) * 2013-03-13 2017-02-07 International Business Machines Corporation Mobilizing a web application to take advantage of a native device capability
US9426201B2 (en) 2013-03-13 2016-08-23 International Business Machines Corporation Transforming application cached template using personalized content
US10346501B2 (en) 2013-03-13 2019-07-09 International Business Machines Corporation Mobile enablement of existing web sites
US10083156B2 (en) 2013-03-13 2018-09-25 International Business Machines Corporation Mobile enablement of webpages
US20140272886A1 (en) * 2013-03-14 2014-09-18 Patrick H. Vane System and Method for Gamefied Rapid Application Development Environment
US20150279233A1 (en) * 2013-03-14 2015-10-01 Patrick H. Vane System and Method for Gamefied Rapid Application Development Environment
US10037314B2 (en) 2013-03-14 2018-07-31 Palantir Technologies, Inc. Mobile reports
US9305374B2 (en) * 2013-03-15 2016-04-05 Apple Inc. Device, method, and graphical user interface for adjusting the appearance of a control
US9442105B2 (en) 2013-03-15 2016-09-13 Organovo, Inc. Engineered liver tissues, arrays thereof, and methods of making the same
US8990839B2 (en) 2013-04-22 2015-03-24 Microsoft Technology Licensing, Llc Controlling runtime access to application programming interfaces
CN103279541B (zh) * 2013-06-04 2016-08-31 天津市天安怡和信息技术有限公司 一种降低网页浏览器加载负载的方法及其装置
US9734174B1 (en) * 2013-06-28 2017-08-15 Google Inc. Interactive management of distributed objects
US9276855B1 (en) * 2013-07-16 2016-03-01 Google Inc. Systems and methods for providing navigation filters
KR20160036619A (ko) 2013-07-31 2016-04-04 오가노보, 인크. 조직을 제작하기 위한 자동화 장치, 시스템 및 방법
US9058375B2 (en) * 2013-10-09 2015-06-16 Smart Screen Networks, Inc. Systems and methods for adding descriptive metadata to digital content
US9530233B2 (en) * 2013-10-10 2016-12-27 Adobe Systems Incorporated Action records associated with editable content objects
US8868537B1 (en) 2013-11-11 2014-10-21 Palantir Technologies, Inc. Simple web search
US9378276B1 (en) * 2014-01-03 2016-06-28 Google Inc. Systems and methods for generating navigation filters
CN105052076B (zh) 2014-02-26 2020-08-25 华为技术有限公司 一种基于云计算的网元管理系统及网元管理方法
US9727376B1 (en) 2014-03-04 2017-08-08 Palantir Technologies, Inc. Mobile tasks
US10831731B2 (en) * 2014-03-12 2020-11-10 Dell Products L.P. Method for storing and accessing data into an indexed key/value pair for offline access
CA3177480A1 (en) 2014-04-04 2015-10-08 Organovo, Inc. Engineered three-dimensional breast tissue, adipose tissue, and tumor disease model
TWI509496B (zh) * 2014-08-12 2015-11-21 Noodoe Corp 電子裝置之頁面管理方法及系統,及相關電腦程式產品
CN105446788B (zh) * 2014-08-20 2019-01-11 联想(北京)有限公司 一种信息处理方法及电子设备
EP3204488B1 (en) 2014-10-06 2019-07-17 Organovo, Inc. Engineered renal tissues, arrays thereof, and methods of making the same
WO2016073782A1 (en) 2014-11-05 2016-05-12 Organovo, Inc. Engineered three-dimensional skin tissues, arrays thereof, and methods of making the same
CN104408120B (zh) * 2014-11-26 2019-04-12 北京国双科技有限公司 源代码的处理方法及装置
CN105159524A (zh) * 2015-08-03 2015-12-16 小米科技有限责任公司 界面显示方法及装置
US10296617B1 (en) 2015-10-05 2019-05-21 Palantir Technologies Inc. Searches of highly structured data
US20170118135A1 (en) * 2015-10-26 2017-04-27 Knowlio, Inc. Responsive Action in a Resource Management System
CN105302445B (zh) * 2015-11-12 2019-07-23 小米科技有限责任公司 图形用户界面绘制方法及装置
US10558345B2 (en) * 2015-11-16 2020-02-11 Sap Se User interface development in a transcompiling environment
JP6566850B2 (ja) * 2015-11-30 2019-08-28 キヤノン株式会社 情報処理システム、情報処理システムの制御方法、情報処理装置およびプログラム
CN112516605B (zh) * 2016-03-31 2022-06-14 贝尔合控(深圳)科技有限责任公司 模块化组件系统
US10466863B1 (en) * 2016-06-01 2019-11-05 Google Llc Predictive insertion of graphical objects in a development environment
US10104187B2 (en) * 2016-06-15 2018-10-16 Futurewei Technologies, Inc. System, computer program, and method for dividing services into subsets based on interdependencies
US10853412B2 (en) * 2016-06-16 2020-12-01 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Scenario-based sound effect control method and electronic device
RU2638779C1 (ru) * 2016-08-05 2017-12-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и сервер для вьполнения авторизации приложения на электронном устройстве
CN106648813B (zh) * 2016-09-19 2020-01-10 南京航空航天大学 一种同步数据流程序的形式化编译方法
EP3538169A4 (en) 2016-11-10 2020-09-30 Organovo, Inc. BIO-PRINTED PILEUX FOLLICLES AND THEIR USES
US10365898B2 (en) * 2016-11-15 2019-07-30 Palantir Technologies Inc. Multi-platform interface framework
CN106775934B (zh) * 2016-11-29 2020-12-11 北京元心科技有限公司 基于多系统的输入输出方法及装置
US10740123B2 (en) 2017-01-26 2020-08-11 Nice Ltd. Method and system for accessing table content in a digital image of the table
US10540167B2 (en) 2017-01-26 2020-01-21 Nice Ltd. Image based method and system for building object model and application states comparison and graphic-based interoperability with an application
US10133953B2 (en) * 2017-01-26 2018-11-20 Nice Ltd. System and method for enabling graphic-based interoperability with a run-time application
US10671602B2 (en) * 2017-05-09 2020-06-02 Microsoft Technology Licensing, Llc Random factoid generation
CN108984221B (zh) * 2017-05-31 2021-07-20 北京京东尚科信息技术有限公司 一种多平台用户行为日志的采集方法和装置
AU2018279309C1 (en) 2017-06-08 2023-11-16 Wix.Com Ltd. System and method for smart interaction between website components
CN109101297B (zh) * 2017-06-20 2021-08-13 北京国双科技有限公司 一种页面的标识方法及装置
US10810004B2 (en) * 2017-06-30 2020-10-20 Oracle International Corporation System and method for managing a public software component ecosystem using a distributed ledger
RU2681408C2 (ru) * 2017-08-22 2019-03-06 Александр Павлович Соколов Способ и система графо-ориентированного создания масштабируемых и сопровождаемых программных реализаций сложных вычислительных методов
CN109558739B (zh) * 2017-09-26 2022-04-15 腾讯科技(深圳)有限公司 程序运行方法、装置、终端及可读介质
RU2668738C1 (ru) * 2017-11-15 2018-10-02 Общество с ограниченной ответственностью "УМИКОН" Способ и система для визуального создания программ для вычислительных устройств
US10963144B2 (en) * 2017-12-07 2021-03-30 Microsoft Technology Licensing, Llc Graphically organizing content in a user interface to a software application
EP3506033A1 (de) 2017-12-27 2019-07-03 Siemens Aktiengesellschaft Verfahren zur rechnergestützten verarbeitung von betriebsdaten eines technischen systems
US10984079B2 (en) * 2018-01-25 2021-04-20 Oracle International Corporation Integrated context-aware software applications
CN110362412A (zh) * 2018-04-09 2019-10-22 华为技术有限公司 一种服务api调用方法和相关装置
US10665008B2 (en) * 2018-05-31 2020-05-26 Microsoft Technology Licensing, Llc Hybrid traversal of object sets
CN108829339A (zh) * 2018-06-28 2018-11-16 上海哔哩哔哩科技有限公司 基于键盘光标的特殊交互元素编辑方法、装置和存储介质
TWI718429B (zh) * 2018-10-25 2021-02-11 國立清華大學 適應性調整使用者介面中資訊量的方法及其電子裝置
KR102136661B1 (ko) * 2018-11-01 2020-07-22 주식회사 한글과컴퓨터 전자 문서에 삽입된 개체들에 대한 손쉬운 깊이 조정을 가능하게 하는 전자 단말 장치 및 그 동작 방법
KR102144354B1 (ko) * 2018-11-05 2020-08-13 주식회사 한글과컴퓨터 전자 문서에 삽입된 개체에 대한 손쉬운 선택 및 조정을 가능하게 하는 전자 단말 장치 및 그 동작 방법
US11232172B2 (en) * 2018-12-04 2022-01-25 Sap Se Collaborative web application and data system
KR102187540B1 (ko) * 2019-01-04 2020-12-07 주식회사 한글과컴퓨터 문서 상에서 겹쳐진 개체에 대한 손쉬운 편집을 지원하는 전자 단말 장치 및 그 동작 방법
US10768901B2 (en) * 2019-01-16 2020-09-08 Accenture Global Solutions Limited Converting code of a first code type on a mainframe device in phases to code of a second code type
CN109951384A (zh) * 2019-01-24 2019-06-28 无锡帮趣数据服务有限公司 一种api网关系统灵活管理的使用方法
US10997192B2 (en) 2019-01-31 2021-05-04 Splunk Inc. Data source correlation user interface
KR102187544B1 (ko) * 2019-03-25 2020-12-07 주식회사 한글과컴퓨터 전자 문서에 존재하는 겹쳐진 개체에 대한 직관적 선택을 가능하게 하는 전자 장치 및 그 동작 방법
US11194564B1 (en) 2019-04-29 2021-12-07 Splunk Inc. Maintaining compatibility in a multi-component application
US10754638B1 (en) 2019-04-29 2020-08-25 Splunk Inc. Enabling agile functionality updates using multi-component application
US11537586B2 (en) * 2019-06-06 2022-12-27 Microsoft Technology Licensing, Llc Detection of layout table(s) by a screen reader
US11120205B2 (en) * 2019-09-09 2021-09-14 Adobe Inc. Reviewing document designs
US11151125B1 (en) 2019-10-18 2021-10-19 Splunk Inc. Efficient updating of journey instances detected within unstructured event data
CN111858368B (zh) * 2020-07-27 2022-11-25 成都新潮传媒集团有限公司 数据处理方法、装置及存储介质
US11741131B1 (en) 2020-07-31 2023-08-29 Splunk Inc. Fragmented upload and re-stitching of journey instances detected within event data
TWI776215B (zh) * 2020-08-24 2022-09-01 奇蹟行動科技有限公司 產生使用者介面的描述碼之方法、系統及非暫態電腦可讀取儲存媒體
CN112464463B (zh) * 2020-11-23 2022-09-06 上海交通大学 基于飞行过程的面向参数功能模型的仿真实现方法
US11790110B2 (en) 2021-02-09 2023-10-17 Nice Ltd. System and method for preventing sensitive information from being recorded
CN113094791B (zh) * 2021-04-13 2024-02-20 笔天科技(广州)有限公司 一种基于矩阵运算的建筑数据分析处理方法
CN113778398A (zh) * 2021-09-28 2021-12-10 北京达佳互联信息技术有限公司 代码生成方法、装置、电子设备及存储介质

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327529A (en) * 1990-09-24 1994-07-05 Geoworks Process of designing user's interfaces for application programs
US5655093A (en) * 1992-03-06 1997-08-05 Borland International, Inc. Intelligent screen cursor
JP2522898B2 (ja) * 1992-09-08 1996-08-07 インターナショナル・ビジネス・マシーンズ・コーポレイション 動的カストマイズ方法及びグラフィックリソ―ス・エディタ
JP2639308B2 (ja) * 1992-11-19 1997-08-13 富士電機株式会社 力センサ,温度センサおよび温度・力センサ装置
US5596702A (en) * 1993-04-16 1997-01-21 International Business Machines Corporation Method and system for dynamically sharing user interface displays among a plurality of application program
US6014138A (en) * 1994-01-21 2000-01-11 Inprise Corporation Development system with methods for improved visual programming with hierarchical object explorer
JPH10500512A (ja) * 1994-05-16 1998-01-13 アップル コンピュータ, インコーポレイテッド グラフィカルユーザーインタフェースの形態及び動作のカスタマイズ方法及びシステム
US6404433B1 (en) * 1994-05-16 2002-06-11 Apple Computer, Inc. Data-driven layout engine
AU2594595A (en) * 1994-05-16 1995-12-05 Apple Computer, Inc. Pattern and color abstraction in a graphical user interface
US5880729A (en) * 1994-05-16 1999-03-09 Apple Computer, Inc. Graphical user interfaces having animated control elements
US6243102B1 (en) * 1994-05-16 2001-06-05 Apple Computer, Inc. Data-driven layout engine
US5504892A (en) * 1994-09-08 1996-04-02 Taligent, Inc. Extensible object-oriented file system
US5745762A (en) * 1994-12-15 1998-04-28 International Business Machines Corporation Advanced graphics driver architecture supporting multiple system emulations
JPH08286916A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> オブジェクトにより手続きソフトウェアを機能的に改良するシステム及び方法
US5986667A (en) * 1994-12-22 1999-11-16 Apple Computer, Inc. Mechanism for rendering scenes using an object drawing subsystem
US5862379A (en) * 1995-03-07 1999-01-19 International Business Machines Corporation Visual programming tool for developing software applications
US6307574B1 (en) * 1995-05-08 2001-10-23 Apple Computer, Inc. Graphical user interface with hierarchical structure for customizable menus and control objects
US5838317A (en) * 1995-06-30 1998-11-17 Microsoft Corporation Method and apparatus for arranging displayed graphical representations on a computer interface
US5872973A (en) * 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
US5917487A (en) * 1996-05-10 1999-06-29 Apple Computer, Inc. Data-driven method and system for drawing user interface objects
US5794470A (en) * 1996-06-25 1998-08-18 P.L. Porter Co. Mechanical seat lock
US5893107A (en) * 1996-07-01 1999-04-06 Microsoft Corporation Method and system for uniformly accessing multiple directory services
US6128007A (en) * 1996-07-29 2000-10-03 Motorola, Inc. Method and apparatus for multi-mode handwritten input and hand directed control of a computing device
US5905492A (en) * 1996-12-06 1999-05-18 Microsoft Corporation Dynamically updating themes for an operating system shell
US6137492A (en) * 1997-04-03 2000-10-24 Microsoft Corporation Method and system for adaptive refinement of progressive meshes
US6262729B1 (en) * 1997-04-14 2001-07-17 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US6215495B1 (en) * 1997-05-30 2001-04-10 Silicon Graphics, Inc. Platform independent application program interface for interactive 3D scene management
US6072501A (en) * 1997-06-27 2000-06-06 Xerox Corporation Method and apparatus for composing layered synthetic graphics filters
US5974470A (en) * 1997-09-03 1999-10-26 Chicago-Soft, Ltd. System for reducing conflicts among dynamic link library modules by aliasing modules
US6243106B1 (en) * 1998-04-13 2001-06-05 Compaq Computer Corporation Method for figure tracking using 2-D registration and 3-D reconstruction
US6067785A (en) * 1998-04-24 2000-05-30 Wellman, Inc. Method of producing high quality dark dyeing polyester and resulting yarns and fabrics
US6188399B1 (en) * 1998-05-08 2001-02-13 Apple Computer, Inc. Multiple theme engine graphical user interface architecture
US6219056B1 (en) * 1998-06-05 2001-04-17 Autodesk, Inc. Shape objects having authorable behaviors and appearances
US6023271A (en) * 1998-06-11 2000-02-08 Sun Microsystems, Inc. Framework for binding data viewers/data manipulation with one to many objects through introspection
DE19928880A1 (de) * 1998-07-06 2000-01-13 Heidelberger Druckmasch Ag Farbkasten in einer Druckmaschine
US6915301B2 (en) * 1998-08-25 2005-07-05 International Business Machines Corporation Dynamic object properties
US6392671B1 (en) * 1998-10-27 2002-05-21 Lawrence F. Glaser Computer pointing device having theme identification means
US6039047A (en) * 1998-10-30 2000-03-21 Acuson Corporation Method and system for changing the appearance of a control region of a medical device such as a diagnostic medical ultrasound system
CA2255017A1 (en) * 1998-11-30 2000-05-30 Christina P. Lau Method and mechanism for a task oriented xml data model
US6353451B1 (en) * 1998-12-16 2002-03-05 Intel Corporation Method of providing aerial perspective in a graphical user interface
US6346945B1 (en) * 1998-12-28 2002-02-12 Klocwork Solutions Method and apparatus for pattern-based flowcharting of source code
US6668354B1 (en) * 1999-01-05 2003-12-23 International Business Machines Corporation Automatic display script and style sheet generation
US7117446B2 (en) * 1999-02-01 2006-10-03 Sonic Solutions, Inc. User interface method and system for application programs implemented with component architectures
US6480813B1 (en) * 1999-02-24 2002-11-12 Autodesk, Inc. Method and apparatus for defining a precision drawing in a drawing program
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6952215B1 (en) * 1999-03-31 2005-10-04 International Business Machines Corporation Method and system for graphics rendering using captured graphics hardware instructions
US6426761B1 (en) * 1999-04-23 2002-07-30 Internation Business Machines Corporation Information presentation system for a graphical user interface
US6779027B1 (en) * 1999-04-30 2004-08-17 Hewlett-Packard Development Company, L.P. Intelligent management module application programming interface with utility objects
US6393432B1 (en) * 1999-06-02 2002-05-21 Visionael Corporation Method and system for automatically updating diagrams
US6613099B2 (en) * 1999-08-20 2003-09-02 Apple Computer, Inc. Process and system for providing a table view of a form layout for a database
US6853868B1 (en) * 1999-10-15 2005-02-08 Sun Microsystems, Inc. Cross-platform audio feedback for GUI components
US7181686B1 (en) * 1999-10-29 2007-02-20 International Business Machines Corporation Selecting screens in a GUI using events generated by a set of view controllers
US6580438B1 (en) * 1999-11-22 2003-06-17 Fuji Xerox Co., Ltd. Systems and methods for maintaining uniformity in a presentation environment
US6546397B1 (en) * 1999-12-02 2003-04-08 Steven H. Rempell Browser based web site generation tool and run time engine
US6762767B2 (en) * 2000-04-06 2004-07-13 Microsoft Corporation Theme aware management using fusion
US20050091576A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
US6873337B1 (en) * 2000-04-06 2005-03-29 Microsoft Corporation Application programming interface for changing the visual style
US20010048448A1 (en) * 2000-04-06 2001-12-06 Raiz Gregory L. Focus state themeing
US7137066B2 (en) * 2000-04-06 2006-11-14 Microsoft Corporation Binary cache file format for themeing the visual appearance of a computer system
US6753885B2 (en) * 2000-04-06 2004-06-22 Microsoft Corporation System and theme file format for creating visual styles
US6886135B2 (en) * 2000-04-07 2005-04-26 Microsoft Corp. Extensible schema for defining the visual appearance of computer system components
AU2001288344A1 (en) * 2000-08-21 2002-03-04 Bsquare Corporation Method and apparatus for producing functionality and user interfaces for deviceshaving an embedded operating system
AU2002226886A1 (en) * 2000-11-09 2002-05-21 Change Tools, Inc. A user definable interface system, method and computer program product
US7596791B2 (en) * 2000-12-19 2009-09-29 Emc Corporation Methods and techniques for delivering rich Java applications over thin-wire connections with high performance and scalability
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US6920461B2 (en) * 2001-07-10 2005-07-19 Microsoft Corp. Application program interface for network software platform
US7581231B2 (en) * 2001-07-10 2009-08-25 Microsoft Corporation Computing system and method for allowing plurality of applications written in different programming languages to communicate and request resources or services via a common language runtime layer
US7165239B2 (en) * 2001-07-10 2007-01-16 Microsoft Corporation Application program interface for network software platform
US7546602B2 (en) 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US20030093419A1 (en) * 2001-08-17 2003-05-15 Srinivas Bangalore System and method for querying information using a flexible multi-modal interface
US20030101439A1 (en) * 2001-11-29 2003-05-29 Giuseppe Desoli System and method for supporting emulation of a computer system through dynamic code caching and transformation
AUPS145902A0 (en) * 2002-03-28 2002-05-09 Canon Kabushiki Kaisha A client server approach for interactive updates of graphical user interfaces on intranets

Also Published As

Publication number Publication date
US20090119578A1 (en) 2009-05-07
TW200515175A (en) 2005-05-01
RU2004127210A (ru) 2006-02-20
AU2004205327A1 (en) 2005-05-12
TWI366105B (en) 2012-06-11
NZ535217A (en) 2006-05-26
MXPA04008849A (es) 2005-06-17
IL164072A0 (en) 2005-12-18
SG111201A1 (en) 2005-05-30
BRPI0407050A (pt) 2005-11-22
US20050091576A1 (en) 2005-04-28
KR101031700B1 (ko) 2011-04-29
AU2004205327B2 (en) 2010-04-01
CA2481590A1 (en) 2005-04-24
IL164072A (en) 2013-01-31
RU2371758C2 (ru) 2009-10-27
JP2005135384A (ja) 2005-05-26
ZA200407299B (en) 2006-05-31
CN1609792A (zh) 2005-04-27
EP1536327A3 (en) 2007-09-05
KR20050039549A (ko) 2005-04-29
NO20043781L (no) 2005-04-25
EP1536327A2 (en) 2005-06-01

Similar Documents

Publication Publication Date Title
CN100530083C (zh) 用于创建应用程序的系统及方法
CN100504766C (zh) 实现编程接口的方法及计算机系统
US10379710B2 (en) Modeling system for graphic user interface
US9361069B2 (en) Systems and methods for defining a simulated interactive web page
US5551055A (en) System for providing locale dependent user interface for presenting control graphic which has different contents or same contents displayed in a predetermined order
US7426734B2 (en) Facilitating presentation functionality through a programming interface media namespace
JP2008512794A (ja) オブジェクト処理グラフアプリケーション開発システム
Helms et al. Human-centered engineering of interactive systems with the user interface markup language
US7657869B2 (en) Integration of external tools into an existing design environment
Kastens et al. Generating Software from Specifications
Phelps Multivalent documents: anytime, anywhere, any type, every way user-improvable digital documents and systems
Tallis et al. The Briefing Associate: A Role for COTS applications in the Semantic Web.
Dietrich et al. Developing graphical model editors for meta-modelling tools-requirements, conceptualisation, and implementation
Gjesdal A Modular Integrated Development Environment for Coloured Petri Net Models
Gill Building Web Applications with C# and. NET: A Complete Reference
von Hanxleden et al. Layout and Visual Comparison of Statecharts
Paternò Carmen Santoro

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150424

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150424

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090819

Termination date: 20180913