none
Blend2 新特性说明 RRS feed

  • 常规讨论

  • Blend2 新特性说明
    发布于:2008-06-15 10:27:09 作者:Scott 来源:http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx 访问:56次 文字:

      控件模板编辑支持

      WPF和Silverlight编程模型最强大的一个功能是其完全定制控件的观感的能力,这允许开发人员和设计师以微妙和戏剧性的方式对控件的UI进行精雕细琢,促成巨大的灵活性。我曾在这里的Silverlight控件模板博客贴子里对这些概念讨论过。


      这个星期的Expression Blend 2.5六月份预览版现在对控件模板编辑加了设计器支持,将方便你快速地改变任何控件的外观,而不必再屈尊去修改XAML源码。


      要看控件模板编辑的实战例子的话,在Expression Blend设计表面上拖放2个Slider控件:



      我们也许会判定默认的Slider控件模板的滑块对我们的应用来说太大,太宽了。要用控件模板编辑功能来改变它的话,我们可以在设计器上右击其中一个 slider,选择“编辑控件部件”上下文菜单项。我们可以给我们的Slider选择创建一个空白的控件模板(从头做起),也可以编辑内置控件模板的拷贝(然后对之细调):



      在我们选择编辑现有的控件模板的拷贝之后,Blend会提示我们创建并命名一个可重用的样式资源,我们将在其中定义我们的控件模板。命名完之后,我们可以选择将样式保存在应用级(在App.xaml中)或在当前页面/用户控件中:



      在点击OK之后,我们会发现转到了Slider控件的模板编辑模式之下,我们可以改变,细调,添加/去除Slider控件模板中的任何底层元素。注意下面,在模板编辑模式中,我们可以看到和选择组成Slider控件模板的任何底层元素(这些元素在下面的“Objects”窗口中用红笔圈了出来)。
    想把滑块做得窄一点的话,我们可以选择控件模板中的“HorizontalThumb”元素,调整它的宽度(在界面里或通过属性网格):



      然后,我们可以使用设计器顶部的breadcrumb导航条回到我们的页面,看控件模板的变动实施后的效果:



      注意,目前只有一个Slider控件使用了刚定义的控件模板的新样式资源。
    要把同样的样式资源用到另外一个Silder控件上,我们可以选择该控件,右击,然后使用“Apply Resource(应用资源)”上下文菜单,把“ScottSlider”样式用到该控件上:



      之后,2个Slider将引用同个样式:



      以后对“ScottSlider”样式做的任何改变将会自动应用到这2个控件之上。
    注意,在Silverlight 2中发布的所有控件都支持控件模板,在Expression Blend中都支持上面那样的编辑体验。

      Visual State Manager (VSM-视觉状态管理器) 之支持

      Silverlight 和 WPF中的控件模板支持对控件的“look(外观)”,以及控件的“feel(感觉)”的定制。“feel”之谓,我指的是改变它交互的响应性。例如,在按下时,得到焦点时,失去焦点时,处于按下的状态时,处于不可用(disabled)状态时,内中有东西被选中时。。。,它是如何反应的。经常地,在用户象这样与控件做交互时,你要执行动画效果。

      我们在Silverlight 2 Beta2中引进的一个新东西是"Visual State Manager(视觉状态管理器)" (VSM),该功能将极大地方便你建造交互性的控件模板。VSM引入了你可在控件模板中利用的2个基本概念:"视觉状态(Visual States)" 和 "状态迁移(State Transitions)"。例如,象按钮这样的控件为自己定义了多个视觉状态: "Normal(正常)", "MouseOver(鼠标之下)", "Pressed(按下)", "Disabled(不可用)", "Focused(获取焦点)", "Unfocused(不具焦点)"。在Blend中的模板编辑模式下,设计师现在可以轻松地编辑按钮在每个特定状态下的外观,以及设置迁移规则来控制从一个状态迁移到另一个状态时动画效果应该运行的时间。然后在运行时,Silverlight会动态地运行合适的动画故事板来把控件从一个状态平滑地过渡到另一个状态。


      这个模型很棒的地方是,设计师不用编写代码,不用手工创建动画故事板,也不用理解控件的对象模型就可以非常有效率。这使得学习创建交互性控件模板的曲线非常容易,意味着现有的美工可以轻松地参与Silverlight项目。今年稍后,我们还将往WPF中添加"Visual State Manager(视觉状态管理器)" (VSM)的支持,让你在Windows应用中使用同样的方法,以及在 WPF 和 Silverlight 项目间共享控件模板。


    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com

    2009年3月11日 8:01
    版主