用于丰富用户界面设计的样式机制的制作方法

文档序号:6554525阅读:111来源:国知局
专利名称:用于丰富用户界面设计的样式机制的制作方法
技术领域
本发明大致涉及图形编辑领域。本发明尤其涉及提供在计算环境内使用样式机制用来将属性应用于图形或其他对象类型的系统和方法。
背景技术
本领域普通技术人员应该理解“样式”是一种通常在特定的发行中或由特定发行人呈现的写入材料方式。样式是在例如MICROSOFT WORD和MICROSOFTVISIO中使用以定义呈现文本、线和/或填充的方法。样式定义执行所述文本、线和/或填充的一定特征用于提供贯穿文档的统一版面。
在普通意义上无法实现样式的一个领域是用户界面(UI)设计,其中期望在设计时间和运行时间上都可定义、执行并保持所述UI设计的定义。用以做出了诸多尝试以实现这一目标。诸如可用于网页设计的CSS(层叠样式表)和XSL(可扩展样式语言)。但是这两种方法都是出了名的复杂和难懂。更重要的是已经证明了很难写出可以有效利用它们的软件工具,特别是允许直接处理和理解该设计的WYSIWYG(所见即所得)工具。
存在的一个问题是软件设计时间如何能够定义UI样式,而运行时间软件执行这些规则并且允许它们改变却无需中断该界面的功能性。更具体地,样式机制应该是对于UI设计的所有方面都是通用并可应用的,能够通过图形和开发工具处理的并且是简单和熟悉的使得UI设计者能够轻易掌握它。然而还没有传统的样式机制能够提供这些特性。
因此就需要提供上述功能性的样式机制。本发明就提供这一解决方案。

发明内容
本发明涉及用于执行施加至用户界面内对象以定义该对象的任何属性的样式模型。该模型被分为两个部分使用一样式定义来影响上述用户界面感观的“运行时间”以及“设计时间”,所述“设计时间”是由WYSIWYG工具呈现的用于定义该用户界面感观的经历。可以根据所述运行时间对象来实现所述设计时间。可使用设计时间UI在所述对象上设置与所述样式相关联的特性并在运行时间执行这些特性。也可将样式归类成为主题用于提供为许多对象添加改变的简易机制。
在阅读了以下参考附图所做出的典型实施例的详细描述之后,本领域普通技术人员还发现本发明另外的特性和优点将变得显而易见。


当结合附图阅读时,可以更好地理解前述的发明内容以及随后的具体实施方式
。为了示出本发明,附图中所示的是本发明的典型结构;然而本发明不限于所揭示的特定方法和手段。在所述附图中图1是示出了在其中可实现本发明各方面的典型计算环境框图;图2是根据本发明由运行时间组件所执行进程的流程图;图3和图4是典型的设计时间用户界面。
具体实施例方式
典型的计算环境图1示出了在其中可实现本发明的合适计算系统环境100的实例。计算系统环境100仅作为合适计算环境的一个实例,并不意味着对本发明的使用和功能作出任何限制。也不应该将计算环境100解释为对在典型操作环境100中示出的组件中的任何一个或它们的组合具有依赖或要求。
本发明可用多个其他的通用或专用计算系统环境或结构进行操作。适用于本发明的已知计算系统、环境和/或配置的实例包括但不限于个人计算机、服务器计算机、手持或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程电子消费品、网络PC、小型机、大型机、包括上述系统和设备任意组合的分布式计算环境等等。
可在以诸如可由计算机执行的程序模块的计算机可执行指令的环境中描述本发明。程序模块通常包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。本发明还可在分布式环境中实践,其中任务通过经由通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括了存储器存储设备的本地和远程计算机存储介质上。
参见图1,一个用于实现本发明的方法和装置的示例系统包括计算机110形式的通用计算设备。计算机110的组件包括但不限于处理单元120、系统存储器130以及把包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是任何类型的总线结构,包括存储器总线或存储器控制器、外围总线和使用各种的总线体系结构的任何一种本地总线。作为实例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线。外围部件互连(PCI)总线(也被称为Mezzanine总线)、外围部件互连直通(PCI-Express)和系统管理总线(SMBus)。
计算机110通常包括多个计算机可读介质。计算机可读介质可以是任何能被计算机110访问的介质并且包括易失性的和非易失性的介质、可移动的和不可移动的介质。通过实例而非限制的方法,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质可在任何存储方法或技术中实现的易失性和非易失性、可移动和不可移动介质,诸如计算机可读指令、数据结构、程序模块或其他数据。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用盘(DVD)或者其他光学存储器、磁盒、磁带、磁盘存储装置或者其他磁性存储设备或者能够存储期望信息并可由计算机110访问的任何其他介质。通信媒介通常具体表示为计算机可读指令、数据结构、程序模块或者在诸如载波或其他传送机制的被调制数据信号内的其他数据,并且还包括任何信息传输媒介。术语“已调制数据信号”指的是具有以在信号内对信息编码的方式设置或改变的一个或多个特征的信号。作为例子而非限制,通信媒介包括诸如有线网络或者直接线连接的有线媒介,以及诸如声学、RF、红外线或其他无线媒介的无线媒介。上述的任意组合也位于计算机可读介质的范围内。
系统存储器130包括以易失性的和/或非易失性的存储器形式的计算机存储介质,诸如ROM 131和RAM 132。包含有助于诸如在启动期间在计算机110内各个元件间传递信息的基本例程的基本输入/输出系统(BIOS)133可以存储在ROM 131中。RAM 132通常包括可由处理单元120立即访问和/或当前操作的数据和/或程序模块。作为例子而非限制,图1示出了操作系统134、应用程序135、其他程序模块136以及程序数据137。
计算机110还可包括其他可移动/不可移动、易失性/非易失性的计算机存储介质。仅作为例子,图1示出了用于对不可移动、非易失性磁性介质进行读取和写入的硬盘驱动140,用于对可移动、非易失性磁盘152进行读取和写入的磁盘驱动151以及用于对诸如CD-ROM或其他光学介质的可移动、非易失性光盘156进行读取和写入的光盘驱动155。也可在此示例的操作环境中使用的其他可移动/不可移动、易失性/非易失性的计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字视频带、固态RAM等等。硬盘驱动141通常通过诸如接口140的不可移动存储器接口与系统总线121相连,磁盘驱动151以及光盘驱动器155通常通过诸如接口150的可移动存储器接口与系统总线121连接。
以上讨论并在图1中示出的驱动以及相关的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块或其他数据的存储。例如在图1中示出的硬盘驱动141用于存储操作系统144、应用程序145、其他程序模块146以及程序数据147。注意到这些组件可与存储操作系统134、应用程序135、其他程序模块136以及程序数据137相同或不同。操作系统144、应用程序145、其他程序模块146以及程序数据147在此给予不同标号表明至少它们是不同的副本。用户可与通过诸如键盘162以及通常被称为鼠标、跟踪球或触摸板的定位设备161的输入设备将命令和信息输入到计算机20。其他输入设备(未示出)可包括麦克风、操纵杆、游戏垫、卫星电视天线、扫描仪等等。这些和其他的输入设备通常经由耦合至系统总线的用户输入接口160与处理单元120连接,但是也可以经由诸如并行接口、游戏接口或通用串行总线(USB)之类的其他接口和总线结构进行连接。监视器191或其他类型显示设备也可以经由诸如视频接口190的接口与系统总线121相连。除了监视器外,计算机还可包括经由输出外围接口190连接的诸如扬声器197和打印机196的其他外围输出设备。
计算机110可使用到诸如远程计算机180的一个或更多的远程计算机的逻辑连接在网络环境内的操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或者其他的公共网络节点,并且通常包括上述计算机110涉及到的许多或全部元件,虽然图1中仅示出了存储器存储设备181。图1描述的逻辑连接包括作局域网(LAN)171和广域网(WAN)173,但是也可包括其他网络。那样的网络环境在办公室范围或公司范围计算机网络、内联网和因特网中是常见的。
在LAN网络环境中使用时,计算机110通过网络接口或适配器170与LAN 171相连。在WAN网络环境中使用时,计算机110通常包括调制解调器172或其他用于以建立与通过诸如因特网的WAN 173通信的装置。可以内置或外置的调制解调器172经由用户输入接口160或其他合适的机制与系统总线121相连。在网络环境中,所述涉及计算机110或其部分的存储模块可以存储在远程存储器存储设备内。作为实例而非限制,图1示出的远程应用程序185位于存储器设备181上。可以理解示出的网络连接是示例性的并且也可以使用在计算机之间建立通信链路的其他方法。
用于UI设计的样式的典型实施例现代的用户界面(UI)通常是由所述UI内的一组对象表示元素(例如按钮、矩形、窗口)以及这些元件的属性(例如颜色、位置、文本值)所定义的。本发明实现一种“样式”作为一组属性(包括但不限于样式、位置、几何结构等)以及这些属性值的排列(例如绿色、屏幕中间、椭圆等)。每一样式都具有用于唯一指代它本身的名称或其他标识符,并且这些样式可应用于所述UI定义内的对象。例如,用户界面的设计者可以定义两个样式,其中一种前景色和背景色分别被定义成黑色和白色的样式被称为“斑马”,而另一种前景色和背景色分别被定义成黑色和橙色的样式被称为“老虎”。如果把“斑马”应用于一组按钮和列表框,则它们就呈现黑色和白色,或是该设计者可以添加“老虎”以获取黑色和橙色的主题。
本发明的样式定义机制可被分为两个部分使用所述样式定义来影响UI感观的“运行时间”组件以及由WYSIWYG工具呈现的用于定义该用户界面感观的经历的“设计时间”组件。可以根据所述运行时间对象来实现所述设计时间。
运行时间样式对象样式对象是带有指定值排列的一组经命名的属性集。所述属性可以来自任何类。使用引用属性的一通用机制可使得公共语言运行时间(CLR)和其他对象系统能够通过给予类型名和属性名来引用一种属性。例如“Button.Background”,其中的“Button”是类型名而“Background”是该类型的一属性名。所述CLR是可从MICROSOFT CORP.获取的.NET Framework的一部分,同时管理程序的执行并且提供用于公共面向对象类的共享。
给定了这些,就可以以XML宣称一种样式,例如<Style Name=”MyStyle”Button.Background=”RGB(0,0,1,0)”DockPanel.Dock=”Left”/>
如果实现样式—继承,则一种样式就可基于另一种样式。这就意味着一种样式可以从父代样式中挑选任何属性和/或数值对。属性排列会在所述新样式中具有优先级考虑并且被称作是对所述父代设置的“替换”。例如<Style Name=”BaseStyle”Button.Background=”RGB(0,0,1,0)”Button.Foreground=”RGB(0,1,0,0)”/>
<Style Name=”DerivedStyle”BasedOn=”BaseStyle”Button.Background=”RGB(0,1,1,0)”Button.BorderColor=”RGB(0,1,1,1)”/>
一种样式的pseudo-C#分类定义可以如下class Style{public string Name{get;set;}public Dictionary<Property,object>Properties{get;}public Style BasedOn{get;set;}}每个元素都包括被称为样式的属性,它的值就是一种样式的所述ID。该属性的所述值是该元素的所述样式。
<Button Style=”ButtonStyle”.../>
经命名并共享的资源可被定义成任何属性类型。
<defResource Name=”Blue”Value=”RGB(0,0,0,1)”/>
<defResource Name=”SystemForeground”Value=”RGB(0,0,1,1)”/>
<Style Name=”Foo”Background=”%Blue”Foreground=”%SystemForeground”/>
通过检查一元素上是否存在一本地值来确定任何具有样式的属性。如果什么也不存在,就使用来自该元素样式的所述属性值。
可将样式和资源组织成主题。主题是能够轻易地切换一组内容整体外观的一组样式定义。
<Theme>
<defResource Name=”Blue”Value=”RGB(0,0,0,1)”/>
<defResource Name=”SystemForeground”Value=”RGB(0,0,1,1)”/>
<Style Name=”BaseButtonStyle”.../>
<Style Name=”SpinButtonStyle”BasedOn=”BaseButtonStyle”.../>
</Theme>
本地主题可以替换现存的样式或者扩展所述样式组。这样用户就可以在一个应用程序中选择改变用于所有按钮的默认按钮背景,而无需改变所有这些按钮的所述样式属性。此外优选的是,所有的控件都指定一个默认的样式属性,该属性是熟知样式名中的一个。例如,所述按钮分类可以将它的默认样式定义为“SystemButtonStyle”。
根据本发明,以上的诸多变化都是可行的。根据第一个变化,可以定义任意范围的主题。这时就可引入在树形结构内任何层次处的主题。这样,一个主题就可以替换这些样式并且将新的样式引入一面板或引入一按钮等等。第二个变化把样式和模板定义成相同的东西。如果模板也可以设置其所附控件上的属性,则随后在此定义的样式就仅仅是模板的一个子集。第三个变化是被强类型化的样式。样式可以落入相关属性组(类似于QueryGroups)。这些相关属性可以是所有的文本属性、笔画属性等等。在此变化之下的控件将具有用于每一样式类型的分开的属性。这是非常灵活的并且将一有用的结构施加给了这些样式。
在运行时间,可以使用所述样式名以识别这些样式从而将它们应用于让对象提供一样式列表的对象。例如
<Button Style=”MyStyle;OtherStyle”/>
在这些对象上的实际属性值是由优选级计算确定的。首先应用直接设置在该对象上的任何属性,随后按次序走动样式列表并且从当前样式中应用尚未设置的任何属性。这样在上述实例中,可以应用在MyStyle内未直接设置在所述按钮上的任何属性,随后则可应用未直接设置在所述按钮上或未由MyStyle设置的OtherStyle的任何属性。
总之,给定对象O具有样式列表{s1,s2,s3,....Sn},就应该以如下的次序应用最终属性设置在O上的任何属性设置在s1上,而未设置在O上的任何属性设置在s2上,而未设置在O或s1上的任何属性设置在sn上,而未设置在O,s1,s2,...sn-1上的任何属性现在转到图2,示出的是由本发明的运行时间组件执行的进程的流程图。用于每个对象(“O”)的进程在步骤200处开始。在步骤202处,应用设置在O上的样式属性。随后在步骤204选择下一个样式。在步骤206处,来自所述样式的与该样式相关联的下一个属性被添加。在步骤208处,确定该属性是否设置在O上。如果没有,随后就在步骤210处设置该属性,否则所述进程就继续到步骤212以确定在所述样式内是否还有任何剩余的属性。如果是这样,随后该进程就回到步骤206,否则该进程就行进到步骤214,在其中确定是否还有任何剩余的样式应被施加。如果是这样,随后该进程就返回步骤204,否则该进程就在步骤216处结束。
根据本发明,一组用户界面工具可以按名字显示一样式列表,并且允许该设计者把属性和值赋予它们表示的所述属性。此外,这些工具为该UI的元素提供样式。在图3和图4中示出了这一UI的典型设计。运行时间组件使得所述UI元素挑选所述属性排列并允许这些元素通过改变样式的定义或应用来挑选新的属性排列。对本发明的扩展还可允许将多种样式应用于单个对象上,使得颜色样式和字体样式可以混合在一起,并且采用了分类继承的对象导向概念的样式继承以允许更简易地管理以及样式的再使用。
参见图3和图4,可以使用在其中示出的典型对话框来定义样式。所述UI允许直接在对象上设置属性。使用该UI,就可从中选择对象并提取属性。该提取的属性随后可被命名为一个样式。一个样式可以通过指向一个对象而被应用并且可以通过名字来设置该样式。如图3中所示,所选按钮正从“Blueberry”样式中选取其颜色属性。如图4所示,仅将所示样式改变为Metallic就将改变整个属性集。
这样,本发明就提供了能与源资源模型兼容的简单的可工具化机制。因为可以使用XML实现,所以它可被方便地串行化及调试。虽然已经结合各附图的较佳实施例描述了本发明,但是应该理解也可使用其他类似的实施例或者也可对描述的实施例做出修改和附加以执行本发明相同的功能而不背离它们。例如,本领域普通技术人员应该认识到在本说明书中描述的本发明可以应用于任何有线或无线的计算设备或环境,并且可以经由通信网络并与该网络交互而应用于任何数量的所述计算设备。此外应该强调,也可考虑包括了手持设备操作系统和其他应用程序指定操作系统的各种计算机平台,特别是随着各种无线网络设备的激增。此外,还可在多个处理芯片或设备中实现本发明,并且可通过多个设备类似地影响存储装置。因此,本发明不应限于任何单个的实施例,而是应该根据所附权利要求来解释其宽度和范围。
权利要求
1.一种在运行时间期间将样式应用于用户界面内一对象的方法,包括确定与所述对象相关联的第一样式;把与所述第一样式相关联的第一属性应用于所述对象;并且对于与所述对象相关联的每下一个样式,把与所述下一个样式相关联的第二属性应用于所述对象,其中所述属性包括在所述用户界面内所述对象的至少一个图形属性。
2.如权利要求1所述的方法,其特征在于,所述第一样式或所述下一个样式继承了来自一父代样式的属性和值。
3.如权利要求2所述的方法,其特征在于,所述父代样式的所述属性和值由所述第一样式或所述下一个样式替换。
4.如权利要求1所述的方法,其特征在于,还包括把本地属性应用于所述对象。
5.如权利要求1所述的方法,其特征在于,还包括把所述样式组织成主题。
6.如权利要求5所述的方法,其特征在于,还包括通过应用本地主题来替换所述样式。
7.一种在设计时间定义将在运行时间期间应用于一个对象的样式的方法包括在用户界面内提供一样式列表,其中每个样式都具有与该用户界面相关联的名称;把属性应用于与所述样式相关联的所述对象,其中所述属性至少包括将在运行时间被应用的所述对象的一个图形属性。
8.如权利要求7所述的方法,其特征在于,还包括选择所述对象以及通过选择所述名字来应用所述样式。
9.一种具有计算机可执行指令存储其上的计算机可读介质,其中所述计算机可执行指令是用于在运行时间期间将样式应用于用户界面内一对象,它包括确定与所述对象相关联的第一样式;把与所述第一样式相关联的第一属性应用于所述对象;并且对于与所述对象相关联的每下一个样式,把与所述下一个样式相关联的第二属性应用于所述对象,其中所述属性包括在所述用户界面内所述对象的至少一个图形属性。
10.如权利要求9所述的计算机可读介质,其特征在于,所述第一样式或所述下一个样式继承了来自一父代样式的属性和值。
11.如权利要求10所述的计算机可读介质,其特征在于,所述父代样式的所述属性和值由所述第一样式或所述下一个样式替换。
12.如权利要求9所述的计算机可读介质,其特征在于,还包括指令用于把本地属性应用于所述对象。
13.如权利要求9所述的计算机可读介质,其特征在于,还包括指令用于把所述样式组织成主题。
14.如权利要求13所述的计算机可读介质,其特征在于,还包括指令用于通过应用本地主题来替换所述样式。
全文摘要
一种应用于用户界面内对象的样式模型实现定义了所述对象的任何属性。该模型被分为两个部分使用一样式定义来影响上述用户界面感观的“运行时间”以及由WYSIWYG工具呈现的用于定义该用户界面感观的经历的“设计时间”。可以根据所述运行时间对象来实现所述设计时间。可使用设计时间UI在所述对象上设置与所述样式相关联的属性并在运行时间执行这些属性。也可将样式分组成为主题用于提供为许多对象添加改变的简易机制。
文档编号G06F17/30GK1828597SQ20061000719
公开日2006年9月6日 申请日期2006年1月25日 优先权日2005年3月3日
发明者J·格斯曼 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1