原文:【全面解禁!真正的Expression Blend实战开发技巧】第一章 真正的开发中的最佳的做法

从设计者到开发者
  设计师创建一个应用程序的布局然后让开发者去实现。

从开发者到设计者

  开发者创建应用程序的函数功能部分,设计者完成样式部分。

使用规范的命名

  规范的命名可以增加代码的可读性,可以根据创建该控件的目的来取名字。例如:tbCustomerId   一个用来显示客户ID的textblock;cnvToolbox     一个包裹button的canvas。

使用合适的控件类型

  根据界面的需要,选择合适的控件。例如一排自定义样式的radiobutton与Gird组合,往往比tabcontrol更易用,效果更酷,你可以很容易的定义转场效果,动画。

将控件编组(group 或 canvas),并为编组命名

  不要对静态的子元件命名,例如:一个用来做底纹的Path,一张背景图片,为他们取名字没有任何意义。将相关的对象分成一组,并给这个组一个名称。

样式的设计和重用

  元素的风格应保持一致;在多个应用程序之间应使用资源字典重用样式;定义一些核心颜色和笔刷,应将其转换为本地资源,这样我们在样式里面使用它们时,只许修改一处,就可以改变所有该资源的引用。

匿名样式的使用好处

  匿名样式可以缺省应用到所有未显示的设置样式的,同类型控件中。

  例如:

<Style TargetType=”Button”>

<Setter Property=”Background” Value = “red”/>

</Style>

  没有指定key属性的样式称为匿名样式,如果此时有一个button没有指定style,他将默认应用匿名样式,Background成红色。

谨慎选择使用位图还是失量图形(Path)

  位图特点:下载量大,不能很好的缩放,占用的资源小,通过代码修改的难度大,可以使用任何位图工具处理,做动画前需要预先渲染。

  矢量图形特点:下载量小,可以根据屏幕的大小改变尺寸,占用的资源高,通过代码修改很容易,仅限于在xaml 中使用,可以使用storyboard改变矢量图形形状.

多使用行为(Behaviors)

尽量重用样式

  有可能的话,尽量使用隐式样式,他会节省你大量的重复代码。

【全面解禁!真正的Expression Blend实战开发技巧】第一章 真正的开发中的最佳的做法的更多相关文章

  1. 【全面解禁!真正的Expression Blend实战开发技巧】第十章 FluidMoveBehavior完全解析之三飞出ListBox吧

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第十章 FluidMoveBehavior完全解析之三飞出ListBox吧 刚才有人说我的标题很给力,哈哈.那这个标题肯定更给力了 ...

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

    原文:[全面解禁!真正的Expression Blend实战开发技巧]十一章 全面解析布局(Grid & Canvas &StackPanel &Wrappanel) 写这篇文 ...

  3. 【全面解禁!真正的Expression Blend实战开发技巧】第九章 FluidMoveBehavior完全解析之二平滑运动的滚动条

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第九章 FluidMoveBehavior完全解析之二平滑运动的滚动条 这一章讲解FluidMoveBehavior的另一个应用, ...

  4. 【全面解禁!真正的Expression Blend实战开发技巧】第七章 MVVM初体验-在DataGrid行末添加按钮

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第七章 MVVM初体验-在DataGrid行末添加按钮 博客更新较慢,先向各位读者说声抱歉.这一节讲解的依然是开发中经常遇到的一种 ...

  5. 【全面解禁!真正的Expression Blend实战开发技巧】第八章 FluidMoveBehavior完全解析之一漂浮移动

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第八章 FluidMoveBehavior完全解析之一漂浮移动 好久没更新博客了,今天如果没急事,准备连发三篇,完全讲解Blend ...

  6. 【全面解禁!真正的Expression Blend实战开发技巧】第四章 从最常用ButtonStyle开始 - PathButton

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第四章 从最常用ButtonStyle开始 - PathButton 上一篇我们介绍了TextButton,但为了追求界面的张力, ...

  7. 【全面解禁!真正的Expression Blend实战开发技巧】第五章 从最常用ButtonStyle开始 - ImageButton

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第五章 从最常用ButtonStyle开始 - ImageButton 本章围绕ImageButton深入讨论,为什么是Image ...

  8. 【全面解禁!真正的Expression Blend实战开发技巧】第二章 你好,UI设计师

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第二章 你好,UI设计师 你好,UI设计师 曾几何时我从没想过要与艺术家打交道,但是Silverlight改变了这一切.UI设计师 ...

  9. 【全面解禁!真正的Expression Blend实战开发技巧】第三章 从最常用ButtonStyle开始 - TextButton

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第三章 从最常用ButtonStyle开始 - TextButton 在实际项目中,使用blend做的最多的一定是各种自定义But ...

随机推荐

  1. Ext.Ajax.request用法

    向一个远程服务器发送HTTP请求. Ajax服务器请求是异步的, 所以对响应数据的处理需要使用回调函数来实现. var params = {}; var ret; Ext.Ajax.request({ ...

  2. ArcEngine 图层标注 (根据字段、角度)

    转自chanyinhelv原文 ArcEngine 图层标注 (根据字段.角度) 今天做了一个用AE来控制图层是否显示标注,以及已哪一个字段作为标注的字段,以哪一个字段作为标注的角度,现将代码写下来, ...

  3. OpenGLES 关于 数学 的分支 - 线性变化量、离散量、随机量

    关于 数学 的分支 - 线性变化量.离散量.随机量 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作 ...

  4. 【hdu 3951】Coin Game

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...

  5. [SVG] Optimize SVGs for Better Performance using svgo

    Just like a bitmap image, you can compress an SVG by removing various pieces of code that aren’t nec ...

  6. Hive的日期函数

    1.unix时间戳转时间函数 语法: from_unixtime(bigint unixtime[, string format]) 返回值: string 说明: 转化UNIX时间戳(从1970-0 ...

  7. Linux中vim编辑器莫名下方出现H的问题

    在使用vim编辑文件的时候,不知道自己是按了哪个快捷键,导致了,每次编辑文件时,下方命令行出现数字+H的格式命令,使得整个文件没法编辑,强制退出后进入不能解决问题,各种文件的编辑都不行,找不出原因,最 ...

  8. Git远程操作具体解释

    Git是眼下最流行的版本号管理系统,学会Git差点儿成了开发人员的必备技能. Git有非常多优势,当中之中的一个就是远程操作非常简便.本文具体介绍5个Git命令,它们的概念和使用方法,理解了这些内容. ...

  9. 【t017】YL杯超级篮球赛

    Time Limit: 1 second Memory Limit: 256 MB [问题描述] 一年一度的高一YL杯超级篮球赛开赛了.当然,所谓超级的意思是参赛人数可能多于5人.小三对这场篮球赛非常 ...

  10. WebHost failed to process a request.Memory gates checking failed because the free memory (140656640 bytes) is less than 5% of total memory

    WebHost failed to process a request. Sender Information: System.ServiceModel.ServiceHostingEnvironme ...