挂起布局逻辑与恢复布局逻辑

this.SuspendLayout();
this.ResumeLayout();

有时候,需要重新布置整个窗口里的控件的位置布局,如刚刚初始化时就是一个例子。这样在每增加一个有dock等属性的控件时,由于这些布局都是相对性布局,都需要重新计算位置什么的,并实际执行布局。如果一个窗口上有50个控件,这个布局处理就要执行50次,并触发50 * n次的布局有关的事件。

而实际上,在定义布局方案过程中,这些布局是没有必要每个控件定义之后就立即执行布局的,也没有必要处理因此发出的布局事件。

更合理的办法,是在全部定义完所有控件的布局方案之后,才一次性计算布局结果,并一次执行。

于是,就设计了这两个函数。第一个函数用于暂停实际的布局,而第二个函数用于恢复实际布局。

在程序里,如果你需要大规模调整布局方案时,就可以先调用suspendlayout,暂停布局执行,然后定义谁在前,谁在后,谁在上,谁在下,谁填充左,谁填充右。

布置完毕。resumelayout,于是,一次性处理完毕。

如果注释这两个方法的调用,效果上也不会有什么变化,只是在性能上会造成不必要的开销。

时间: 2024-10-29 19:03:37

挂起布局逻辑与恢复布局逻辑的相关文章

读书笔记3:uwp布局原理与自定义布局设计

布局原理 布局的意义 布局是页面编程的第一步,是总体把握页面上UI元素的显式.由于Windows10支持不同分辨率不同设备,布局显得越来越重要,也越来越复杂..布局有着如下意义: 1)代码逻辑:良好的布局会使代码逻辑非常清晰,不好的布局方案回事页面代码逻辑混乱.好的布局方案,要给予对各种布局控件的理解,然后充分的利用他们的特性去实现布局的效果. 2)效率性能:布局不仅仅是界面UI的事情,他甚至会影响程序的运行效率.当界面要展示大量的控件时,布局的好坏就会直接影响到程序的效率.良好的布局实现逻辑会

移动端布局之路-----rem布局

rem基础 rem单位 rem (root em)是一个相对单位,类似于em,em是父元素字体大小. 不同的是rem的基准是相对于html元素的字体大小. 比如,根元素(html)设置font-size=12px; 非根元素设置width:2rem; 则换成px表示就是24px. /* 根html 为 12px */ html { font-size: 12px; } /* 此时 div 的字体大小就是 24px */ div { font-size: 2rem; } rem的优势:父元素文字大

《Ext.net》布局以及Ext JS布局

今天主要对Ext.net布局和Ext js 布局的一个学习. Ext.Net布局概述 Ext.Net中的布局是对ExtJS布局的封装,可以用在panel控件,或者继承自panel的控件,例如window.form.gridpanel.treepanel等.首先来看一个简单的例子: <ext:Window runat="server" ID="win1" Title="Layout示例" Width="600" Heigh

Flex布局(伸缩盒布局)

Flexible Box是什么?Flexible意为可伸缩的,Box意为盒子,可以理解为一种新式的盒模型——伸缩盒模型.由CSS3规范提出,这是在原有的大家非常熟悉的block, inline-block, inline的基础上延伸出的新一代布局模式. 浏览器兼容性 作为非常现实的开发者,是否对一个新技术进行关注,首先要考虑它的浏览器兼容性如何.我们的伸缩盒模型的浏览器兼容性看起来还是相当不错的. 可以看到,现代浏览器基本上都支持了,IE10开始也支持了(IE和Safari分别加-ms-和-we

Android学习系列(二)布局管理器之线性布局及其自定义实现

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39643669 LinearLayout是Android控件中的线性布局控件,它包含的子控件将以横向(HORIZONTAL)或竖向(VERTICAL)的方式排列,按照相对位置来排列所有的子控件及引用的布局容器.超过边界时,某些控件将缺失或消失.因此一个垂直列表的每一行只会有一个控件或者是引用的布局容器. 一.LinearLayout线性布局的相关属性说明: android:orientat

Android仿微信UI布局视图(圆角布局的实现)

圆角按钮,或布局可以在xml文件中实现,但也可以使用图片直接达到所需的效果,以前版本的微信就使用了这种方法. 实现效果图:    不得不说,这种做法还是比较方便的. 源代码: MainActivity(没写任何代码,效果全在布局文件中实现): package com.android_settings; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity

静态布局、自适应布局、流式布局、响应式布局、弹性布局简析

近期学习,有很多感想,有时候看似相近的概念,其实意义却不相同.所以学习要针对不同的名词有明确的区分意识. 抽空时间,打算学习下display:flex;本以为就是一个小小的知识点,正式去研究的时候,才发现display:flex;有很多内容,能实现很多效果.比如三栏布局(左右两栏固定,中间栏自适应),圣杯布局. 后来想着经常听到流式布局,自适应布局,响应式布局,他们有什么区别呢,就去搜了许多内容查看,才发现每种布局都有优缺点和不同使用场景. 静态布局:给页面元素设置固定的宽度和高度,单位用px,

如何用CSS快速布局(一)—— 布局元素详细

要快速进行网页排版布局,则必须对布局的元素有清晰的了解,才不会总是在细节处出错.这一篇先详解有关布局的因素作为布局基础:块级元素and内联元素.盒模型.准确定位.元素对齐.样式继承.下一篇则重点描述快速布局思路. 一.什么是块级元素和内联元素 1,块级元素: display:block表现出来的特点是折行的, 一般来说可以包含块级元素和内联元素: 例外: P 元素,只能包含内联元素,而不能包含块级元素. "form"这个块元素比较特殊,它只能用来容纳其他块元素. 2,内联元素: dis

响应式布局和移动端布局

响应式布局就是响应式设计方案呈现的效果.具体就是页面的布局会根据不同设备的显示面积(主要是宽度)的不同而呈现不同的布局,这个效果是比弹性的布局更好的地方是样式会主动地根据用户的设备的显示面积呈现的布局更灵活,可读性更强.当然对研发的要求也更高(比如说如何更好地让图片,适配,UI动画自适应各种布局).响应式设计一般来说是一套设计方案解决所有的设备的自适应问题.对应的样式文件可能是多个,也可以只写一个(在一个css文件声明不同的media query就可以). 移动端布局就是传统的固定宽度或者弹性布