WPF布局系统(常用布局面板)
来源:互联网 发布:尚学堂java视频下载 编辑:程序博客网 时间:2024/05/28 15:52
首先需要询问面板需要多大的空间,在这个过程中需要测量每一个子元素并得到他们所需要的空间,然后汇总这些数据,从而求出面板需要的空间。但是,往往不是测量之后就可以确定所需大小,必须在排列阶段才能获知面板所需的实际大小,因为这涉及到把子元素布局到什么位置,并尽可能地嵌入到有效空间中的问题。
由上可知,这两个步骤都需要对子元素进行一系列的计算,所以子元素越多,执行计算的次数就越多,所以消耗的资源也就越多。故,在进行布局的时候,应该尽可能地避免使用不需要的复杂的布局面板,例如能使用Canvas就没必要使用Grid这样复杂的布局面板。同样,如果有可能,尽量避免重新的布局计算,避免不必要地调用UpdateLayout方法。
当一个布局发生改变的时候,布局系统都会触发一次新的处理过程,进行重新布局。所以了解哪些方法会在什么情况下导致布局发生,对于优化程序性能能重要,毕竟布局过程是一个递归的过程。
1,应注意哪些属性值更改会引起执行布局系统的递归更新;
2,如有可能,应使用 RenderTransform 而不要使用 LayoutTransform;
3,避免不必要地调用 UpdateLayout,因为UpdateLayout强制调用布局系统的递归更新;
4,当包含大量元素集合时,请使用 VirtualizingStackPanel虚拟化元素;
Canvas的简要分析
Canvas是一种比较简单的布局容器,采用绝对定位,精确地控制每个元素的位置。实际情况是Canvas不做任何布局,它只是简单地把元素放到指定的位置就OK了,而且它默认不会改变元素的大小来填充可用的布局控件,也就意味着其子元素是根据元素的内容来调整尺寸大小。
DockPanel的简要分析
DockPanel适合于进行简单的整体布局,可以用来划分窗体的基本结构。它总是会对每个元素进行排列,默认情况下,最后一个子元素负责填充剩余的布局控件。
StackPanel的简要分析
StackPanel也是一种简单的布局面板,它将子元素按照行或列进行排列。但是它的功能不足进行整个面板的布局,而是进行一些的模块布局。每个子元素与面板一样宽或一样高,当子元素超过面板空间,会自动截断。剩余的空间将由元素的HorizontalAlignment和VerticalAlignment属性决定。
WrapPanel的简要分析
WrapPanel与StackPanel基本没有区别,不同的是,当子元素超过面板宽度的时候,WrapPanel会在下一行进行排列。
VirtualizingStackPanel
与StackPanel相同,不同之处在于它可以使内容虚拟化。WrapPanel使子元素按照水平或垂直方向排列,在行或列处换行或列,依旧按照水平或垂直方向从左到右或从上到下排列。- WPF布局系统(常用布局面板)
- WPF详解2.0-WPF布局面板
- WPF-常用布局容器
- WPF-常用布局容器
- WPF常用布局介绍
- WPF常用布局介绍
- WPF-WPF布局系统
- WPF布局系统
- WPF 布局系统
- WPF基础教程之布局系统
- WPF基础之布局系统
- WPF(布局)
- UI 布局(WPF)
- WPF之路——StackPanel布局(堆栈面板)
- WPF布局
- WPF布局
- WPF布局
- wpf布局
- servlet如何处理html form表单上传文件的同时传入的参数
- android studio 自动签名
- 软件设计要控制
- 快速排序算法
- php中的预定义变量
- WPF布局系统(常用布局面板)
- SSO-CAS-Http配置
- ssh时遇到 WARNING: POSSIBLE DNS SPOOFING DETECTED! 的解决方法
- JAVA: String or binary data would be truncated 异常解决办法
- dlopen undefined symbol
- JavaWeb中Servlet的生命周期方法
- yii memcahed
- 将xml解析成map
- js前端预防xss攻击的方法