- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
原文出处:国双科技-黄勇坚Silverlight布局管理1.布局管理介绍复杂的页面、软件界面都是由若干个界面部件组成的。每个部件占据着屏幕的一个部分。如何将这些部件有机地放在用户界面中,并且适合种尺寸大小的显示,成为界面设计者的一大难题。在界面的大小改变时,界面中的控件的位置和大小均会发生变化,如有的控件自动产生滚动条,有些控件之间的距离变小或者变大,有的控件的宽度和高度变小,有的控件大小不变但是即因为父容器的大小不足以容纳子控件而导致只显示一部分……如果要设计者考虑如何摆放这些控件,会降低程序人员和设计者的生产率。由于所有的软件都涉及到界面总局问题,因为寻求一种自动处理的布局管理方案则越来越迫切。在设计网页时,往往根据固定的尺寸进行网页元素的布局;但是在设计软件界面时,软件窗口的大小往往是可变的,如果仅使用XY坐标进行定位,会导致界面在不同窗口大小显示时产生较大的差异,甚至会发生显示异常而影响用户体验。理想的布局方案应该做到:2.当界面大小发生变化时,布局方案自动根据布局约束调整界面,而不需要开发人员编写界面大小变化的处理逻辑。3.内置一系列的布局方案,支持常用的布局,包括表格布局,顺序布局,坐标布局。4.布局方案可扩展,当内置的布局不满足开发者要求时,开发者可以扩展布局方案。5.支持裁剪,可以指定超出特定范围的内容不予展示。6.布局管理的一般方法处理布局管理,一般有以下的两种方法:1)处理窗口大小改变的事件这是传统的方法,当没有布局管理器时,往往使用这种方法。例如在使用Win32 API开发的应用程序中,Win32平台并没有提供布局管理器,这时程序员需要处理父窗口的窗口大小改变的事件通知,在事件通知处理函数中一一对子窗口的大小和位置进行计算和调整,从而使子窗口也产生窗口大小改变的事件消息,程序员继续处理子窗口的窗口大小变化的消息,再对子窗口中的下一级子窗口的大小和位置进行计算和调整……一直递归到最底层的子窗口,或者对该窗口的子窗口的布局不感兴趣的窗口。这种方式实质将计算窗口大小、根据需要排列窗口的任务交给了开发人员,开发人员负担很大。但是通过处理窗口大小改变的事件通知,却给了开发人员极大的灵活性。2)使用布局管理器这是当前的软件平台中流行的解决方案。Java Swing、WPF、Silverlight均提供了布局管理器。只需要选择适当的布局管理器,把控件加入布局管理器中,布局管理器会根据开发人员所设置的约束性条件自动调整控件的位置和大小。例如Java提供了FlowLayout、BorderLayout、GridLayout,在FlowLayout中的控件会按顺序依次排列,在BorderLayout中把容器划为上下左右中的五块区域并把控件根据开发人员的设置放到指定的区域,在GridLayout中可以采用表格布局。Silverlight的Canvas、StackPanel、Grid提供了相似的布局支持。使用布局管理器,共同点是开发人员设置好布局方式和约束条件时,则不需要处理界面大小变化的事件通知即能实现控件自动布局。7.Silverlight布局管理以下的描述针对于Silverlight 2.0。未来的Silverlight版本可能会在细节上有所调整。7.1.Silverlight插件外布局和Silverlight插件内布局Windows平台下的Silverlight是一个普通的ActiveX控件,可以放置于任何的ActiveX容器中。但是主要的应用还是发生在浏览器上,即由浏览器作为ActiveX容器。Silverlight内容的布局就包括Silverlight插件在浏览器中与其它HTML元素的布局以及Silverlight插件内的Silverlight内容布局。Silverlight插件与其它HTML元素的布局不在本文的讨论范围之内,Silverlight插件作为网页中的一个部分和其它HTML元素一起使用CSS或者TABLE进行定位。如果Silverlight内容的大小超过插件的大小,则只能显示一部分的Silverlight内容。本文只描述Silverlight插件内的布局。7.2.Silerlight布局的LayoutSlot和LayoutClip每个元素外围都有一个称为Element Bounding Box的虚拟的矩形区域,这个区域可以通过LayoutInformation类中的GetLayoutSlot()的方法获取,本文将这个Element Bounding Box称为LayoutSlot。上图虚线部分即是Child Element的Bounding Box(LayoutSlot)。LayoutSlot的大小是由系统决定的。只会位于Clip区域中的内容才会被显示在屏幕上。7.3.Silverlight布局流程Sil
文档评论(0)