欢迎来到天天文库
浏览记录
ID:35515417
大小:102.00 KB
页数:5页
时间:2019-03-25
《silverlight布局管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、原文出处:国双科技-黄勇坚Silverlight布局管理1.布局管理介绍复杂的页面、软件界面都是由若干个界面部件组成的。每个部件占据着屏幕的一个部分。如何将这些部件有机地放在用户界面中,并且适合种尺寸大小的显示,成为界面设计者的一大难题。在界面的大小改变时,界面中的控件的位置和大小均会发生变化,如有的控件自动产生滚动条,有些控件之间的距离变小或者变大,有的控件的宽度和高度变小,有的控件大小不变但是即因为父容器的大小不足以容纳子控件而导致只显示一部分……如果要设计者考虑如何摆放这些控件,会降低程序人员和设计者的生产率。
2、由于所有的软件都涉及到界面总局问题,因为寻求一种自动处理的布局管理方案则越来越迫切。在设计网页时,往往根据固定的尺寸进行网页元素的布局;但是在设计软件界面时,软件窗口的大小往往是可变的,如果仅使用XY坐标进行定位,会导致界面在不同窗口大小显示时产生较大的差异,甚至会发生显示异常而影响用户体验。理想的布局方案应该做到:2.当界面大小发生变化时,布局方案自动根据布局约束调整界面,而不需要开发人员编写界面大小变化的处理逻辑。3.内置一系列的布局方案,支持常用的布局,包括表格布局,顺序布局,坐标布局。4.布局方案可扩展,当内
3、置的布局不满足开发者要求时,开发者可以扩展布局方案。5.支持裁剪,可以指定超出特定范围的内容不予展示。6.布局管理的一般方法处理布局管理,一般有以下的两种方法:1)处理窗口大小改变的事件这是传统的方法,当没有布局管理器时,往往使用这种方法。例如在使用Win32API开发的应用程序中,Win32平台并没有提供布局管理器,这时程序员需要处理父窗口的窗口大小改变的事件通知,在事件通知处理函数中一一对子窗口的大小和位置进行计算和调整,从而使子窗口也产生窗口大小改变的事件消息,程序员继续处理子窗口的窗口大小变化的消息,再对子窗
4、口中的下一级子窗口的大小和位置进行计算和调整……一直递归到最底层的子窗口,或者对该窗口的子窗口的布局不感兴趣的窗口。这种方式实质将计算窗口大小、根据需要排列窗口的任务交给了开发人员,开发人员负担很大。但是通过处理窗口大小改变的事件通知,却给了开发人员极大的灵活性。2)使用布局管理器这是当前的软件平台中流行的解决方案。JavaSwing、WPF、Silverlight均提供了布局管理器。只需要选择适当的布局管理器,把控件加入布局管理器中,布局管理器会根据开发人员所设置的约束性条件自动调整控件的位置和大小。例如Java提
5、供了FlowLayout、BorderLayout、GridLayout,在FlowLayout中的控件会按顺序依次排列,在BorderLayout中把容器划为上下左右中的五块区域并把控件根据开发人员的设置放到指定的区域,在GridLayout中可以采用表格布局。Silverlight的Canvas、StackPanel、Grid提供了相似的布局支持。使用布局管理器,共同点是开发人员设置好布局方式和约束条件时,则不需要处理界面大小变化的事件通知即能实现控件自动布局。7.Silverlight布局管理以下的描述针对于S
6、ilverlight2.0。未来的Silverlight版本可能会在细节上有所调整。7.1.Silverlight插件外布局和Silverlight插件内布局Windows平台下的Silverlight是一个普通的ActiveX控件,可以放置于任何的ActiveX容器中。但是主要的应用还是发生在浏览器上,即由浏览器作为ActiveX容器。Silverlight内容的布局就包括Silverlight插件在浏览器中与其它HTML元素的布局以及Silverlight插件内的Silverlight内容布局。Silverlig
7、ht插件与其它HTML元素的布局不在本文的讨论范围之内,Silverlight插件作为网页中的一个部分和其它HTML元素一起使用CSS或者TABLE进行定位。如果Silverlight内容的大小超过插件的大小,则只能显示一部分的Silverlight内容。本文只描述Silverlight插件内的布局。7.2.Silerlight布局的LayoutSlot和LayoutClip每个元素外围都有一个称为ElementBoundingBox的虚拟的矩形区域,这个区域可以通过LayoutInformation类中的GetLa
8、youtSlot()的方法获取,本文将这个ElementBoundingBox称为LayoutSlot。上图虚线部分即是ChildElement的BoundingBox(LayoutSlot)。LayoutSlot的大小是由系统决定的。只会位于Clip区域中的内容才会被显示在屏幕上。7.3.Silverlight布局流程Silverlight的
此文档下载收益归作者所有