canvas教程

【真正的Expression Blend实战开发技巧】十一章 全面解析布局(Grid Canvas StackPanel

字号+ 作者:H5之家 来源:H5之家 2015-10-15 12:50 我要评论( )

写这篇文章前,特意在百度搜索了一下,发现目前网上介绍布局的文章不多,质量也不是很高。拿grid和canvas来讲,这两个布局容器还是有许多小细节值得讲的,如果你

【真正的Expression Blend实战开发技巧】十一章 全面解析布局(Grid & Canvas &StackPanel &Wrappanel)

时间:2011-04-26 22:29 点击:2185次 字体:[]





  写这篇文章前,特意在百度搜索了一下,发现目前网上介绍布局的文章不多,质量也不是很高。拿grid和canvas来讲,这两个布局容器还是有许多小细节值得讲的,如果你不了解的话,开发中经常会遇到一些让人匪夷所思的事情。学习silverlight xaml的过程可以分为布局,样式,模板,资源,动画,行为,绑定等几个知识点。我个人觉得布局是最难熟练掌握的。

  布局,既是基础中的基础,也是难点中的难点:

  1、无法复用:模板,样式,上手虽难,但因为控件的基本结构是不变的,当你学会为button定义样式后,以后都不会在为button的样式发愁,但是布局不同。几乎没有一个项目的布局是完全一样的。

  2、标准不一:表面上看起来一摸一样的布局,可能实现的细节完全不同。大多数情况下而你很难用一个标准去规范或者界定,什么时候,应怎样做。

  3、布局不是一堆控件的堆叠,而是合理的组织,但如何合理的组织,这个经验需要从众多项目中磨练才能具备。

  4、随着需求的变化,最容易产生变动的就是布局。

  5、你没办法为布局去写注释,所以一个层次很深很复杂的布局,维护成本就特别高。比如让你修改一个一年以前你写的项目,还要要彻底改变布局结构的时候,即使是我自己写的,我也很难看懂。

  6、客户对silverlight期待很高,希望界面能够创新,不走寻常路,这样你就可能遇到一些非常规的布局,他们奇特,狂野,而从使用的角度讲,还必须要健壮,有一定的适应性。比如一个异型,镂空,半透明,带阴影的窗体设计,也必须能正确的适应浏览器宽高的变化,能够完整显示所有信息,描述信息能够正确的换行等等。我遇到过的最夸张的需求,客户有一台只支持1024*768分辨率的投影机,和一个分辨率4000:1000(具体数字记不清楚了) 这种宽高比超级特殊的LED墙。他希望你的软件既可以在1024*768下完全显示,又要在LED下可以充满全屏且不变形,而且距离LED十米开发也要能看清楚你界面上的每一个字。

  7、每次修改布局,都会对他周围甚至整体产生影响,必须非常全面的观察和测试。

  8、设计布局前还要充分考虑动画设计。

  9、还有一些特殊情况,你无法在blend中看到设计视图。这个时候只能用一行一行看代码,在脑子里还原程序的轮廓。

  什么是好的布局?根据我个人的经验,在满足设计需求的前提下,一个好的布局,还需要考虑以下一些方面,

  1、结构简单

  2、分层清晰

  3、层次不要太深

  3、相对独立

  4、低耦合

  5、自适应性强

  6、使动画实现更简单

  上面几点不分先后和优先级,你需要根据项目的实际需求和设计以及开发周期,权衡他们的比重。

  

  详解Grid  

  Grid的最大特点是他可以向四个方向(HorizontalAlignment,VerticalAlignment)填充Usercontrol。同时,他的子元素也可以向四个方向填充他们自己。Grid中所有的子元素都是用margin进行相对定位的(这个相对指相对于父容器Grid)。

  有几种情况需要特殊注意:

  1、当我们没有HorizontalAlignment和VerticalAlignment的默认值就是"Stretch",换句话说如果我们这样写<Rectangle Fill="#FF701313"/>,虽然没有提到明确指定HorizontalAlignment和VerticalAlignment,但此时Rectangle的水平和垂直的填充方式默认就是Stretch。

  2、请不要忽略margin的细微差别。如下面两张图片中,这个矩形的宽度,对齐方式都是左对齐,上下填充对齐,唯一的区别是margin.right的值一个为88,另一个为0。

    

    



本文地址 :

标签: Expression Blend 实战开发技巧

  • 上一篇:Silverlight 5 beta新特性探索系列:9.视频快进快退和TextSearch对象对文字项查询
  • 下一篇:Expression Blend实战开发技巧
  • ------分隔线----------------------------

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • Expression Blend范例中文教程(4) - 布局控件快速入门Canvas

      Expression Blend范例中文教程(4) - 布局控件快速入门Canvas

      2016-03-17 11:00

    网友点评
    a