问题背景:
北大青鸟ASP.Net视频中,老师提到可以通过更改属性PageLayout的值,来实现页面布局由默认的FlowLayout(流式布局)而成为GridLayout(网格布局),即系统控件安排的‘有序’定位(用户不能随意定位),变成用户自定义定位(拖到哪里,就是哪里)。但是,在VS2012开发环境中,却没有找到,折腾了好久,偶然的机会才发现解决方法。
解决方法:
方法一:VS2012,工具——选项——Windows窗体设计器,在该界面中,‘布局模式’由SnapToLine改成SnapToGrid。
方法二:VS2012,工具——选项——HTML设计器——CSS样式,在该界面中,选中‘对于使用工具箱、粘贴或拖放操作添加的控件,将定位方式改为绝对定位’前面。
VS2012默认的控件定位方式,是流式的即SnapToLine,按照线性对齐,也就是我们常说的流式布局,而通过以上两种方式,可以简单的实现VS2012开发环境控件布局方式的用户自定义化。
PageLayout在MSDN:
查了一下MSDN中,对pageLayout属性的解释:
·GridLayout 绝对定位属性插入到添加的元素中并在移动的元素中更新。可以在整个“设计”视图表面上拖动元素。可以使用定位网格和“网格线对齐”。这就是我们常用的那种用户自定义定位方式,随便的使用鼠标拖动控件的位置。
·FlowLayout 元素不带绝对定位属性添加。Web浏览器按元素在页上出现的顺序从上到下排列元素。不能在“设计”视图表面上拖动元素或者使用定位网格,即只能按照系统的要求呈线性布局。
留个疑问:
相对而言,我更喜欢用户自定义布局,随便拖放控件,到哪里就是哪里,但是VS2012为什么默认为流式布局的格式?这样有什么好处么?还有一个疑问就是,这两种布局模式,分别在什么情况下使用更能体现各自的优越性?恳请指点~~~