设为首页 收藏本站
查看: 2333|回复: 6

[经验分享] 快速构建Windows 8风格应用17-布局控件

[复制链接]

尚未签到

发表于 2012-10-10 09:00:28 | 显示全部楼层 |阅读模式
本篇博文主要介绍三种常用的布局控件:Canvas、Grid、StackPanel。
Panel类是开发Windows 8 Store应用中一个重要类,它在Windows 8 Store应用布局系统中扮演非常重要角色。
Panel可以承载多个子元素,面板类可以把子元素存放在栈中、或网格里面、或把子元素停靠在其边缘等。
Panel类自身是一个抽象类,下面是Panel类的层次结构:
2f2f89ed9ef6a8b3a4ba0e79d43ee806.png
Windows 8 Store应用中包含的三个标准布局控件:Canvas(通常在常规布局中,尽量不要考虑使用Canvas,不过在某些特殊情况下,使用Canvas还是非常方便的)、Grid(它是大多数常规布局的首选)、StackPanel(可能是最简单的一种面板类型)。

Canvas
要在Canvas中定位元素,需要提供相对于左上角的水平坐标和竖直坐标。 6f448c61ca8192c6f53a384e0d3f543c.png
代码实现效果:
c455a69684cebb5e162261736f54e72b.png
其中Left和Top属性表示元素的左上角与Canvas左上角的相对位置。
一般来说Canvas比较适合把元素布局在任何位置上,因此这样更适合于矢量图形编程而不是控件布局编程。
同样我们C#代码中控制控件元素在Canvas中布局。 6cad32f49c61b434aee11c6f4f778dfc.png
我们注意到xaml代码中并没有设置button的相对于Canvas的Left和Top属性,这里通过C#代码进行设置。
96d15b838a9120ff1c396c52570e799d.png
SetValue方法定义在DependencyObject类里面,LeftProperty和TopProperty是Canvas中DependencyProperty类型的静态字段。
两种布局设置方式最后实现效果是一样。

Canvas还有一个附加属性是ZIndex,我们可以使用ZIndex来更改默认元素的层次。
我们可以在一个或多个字元素中设置Canvas.ZIndex附加属性,可以将这个属性理解为屏幕中想出的Z轴,z值较大的元素会覆盖z值较小的元素。如果两个元素具有相同的Canvas.ZIndex值,那么会根据他们在Children集合中德顺序来分层。
注意:虽然Canvas.ZIndex附加属性定义在Canvas类中,但是它实际上适用于任何类型的面板。另外如果我们自定义一个面板类,其实我们并不需要处理Z值,布局系统会自动处理。
4282119bf2ba8576ac1d7bc7b1357a93.png

Grid
Grid是我们选择面板类时默认选择,它非常灵活易用。

Grid让我们可以想起HTML中的表格(Table),但两者是有差异的:Grid不像HTML的表格,它并不是做格式化的工作,只用于布局,并且也没有标题或者内置单元格分割线等概念。

Grid具有一定数量的行和列;行的高度可以不一样,列的高度也可以不一样。Grid中的子元素可以占据一个特定的行和列,也可以占据多行和多列。虽然Grid功能非常强大,但也是需要付出代价的,我们在使用Grid的时候需要知道需要多少行和列来容纳所有的子元素。

注意:嵌套Grid是十分常见,但不要滥用,特别是在程序会经常重新生成布局的情况下。过于复杂的嵌套会导致布局非常混乱。
1fd480525dcde45be12738e3bfc2d5f6.png
实现效果:
a9e3504db21bd3621fce178df472802d.png
Grid定义了RowDefinitions和ColumnDefinitions两个属性,它们分别是RowDefinition和ColumnDefinition对象的集合。这些对象定义了每行的高度和每列的宽度,我们通常可以有三种选择:
1) 使用单词“Auto”;
2) 固定的像素;
3) 星号,或者数字后加星号;
通过Grid的附加属性Grid.Row和Grid.Column来指明子元素所在的行和列。 b50ec28906711a765697e786eacb61d6.png

StackPanel
StactPanel可以理解成已“栈”的形式将其子元素自顶向下或自左向右排列,并且子元素彼此之间不互相重叠。
默认情况下子元素是自顶向下排列的。
b97384180af38a920ac5541d97335d79.png
我们也可以设置子元素是自左向右排列。
e70320fbbdc99a2d1ff04e39090245e2.png
我们可以通过StackPanel的Orientation属性来改变子元素排列的方向。 43d82df57f57057edee093cf571f5768.png
当然我们也可以通过C#代码来设置子元素的排列方向。 9e241c8b582f800a1e1959faa969ccfc.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-1452-1-1.html 上篇帖子: win32 透明时钟 开源 下篇帖子: windows下载速度正常,上传速度不正常 快速 应用 Windows 风格

尚未签到

发表于 2013-3-14 00:08:35 | 显示全部楼层
我是个凑数的。。。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

累计签到:1 天
连续签到:1 天
发表于 2013-5-16 00:16:06 | 显示全部楼层
我不在江湖,但江湖中有我的传说。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 10:35:22 | 显示全部楼层
.其实我是一个天才,可惜天妒英才!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-18 13:49:10 | 显示全部楼层
与时俱进,你我共赴高潮!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-19 21:24:04 | 显示全部楼层
你的丑和你的脸没有关系。。。。。。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-21 08:43:19 | 显示全部楼层
爱她,就请为她做无痛人流手术!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表