存档

档案为2008年11月

自Silverlight的工具包控制:膨胀

2008年11月26日 5条评论

介绍

这是自定义的Silverlight控件工具包系列的第二个职位。 这个职位演示如何自定义扩展,并提供最要求定制的Silverlight的工具包 论坛

扩展定制

要自定义扩展,它是非常重要的,了解它的API和默认模板,并知道如何使用混合重新模板控制。 我会强烈建议您阅读我以前的职位的Silverlight工具包扩展控制 ,如果你还没有。 自定义扩展的关键:

  • 了解扩展接口,尤其是其控制的合同:
    • 预计1扩展模板的一部分,一个切换按钮,命名为“ExpanderButton”,在它的模板。 它的展开/折叠功能就本模板的一部分赖以生存的,因为Silverlight不支持双向约束力。
    • 扩展暴露ExpansionStates视觉状态组(包括展开和折叠两种视觉州),供用户定制的展开和折叠的行为。
    • 扩展暴露ExpandDirectionStates视觉状态包括ExpandDown,ExpandUp,ExpandLeft,ExpandRight组()为用户定制的四个方向扩展每个布局。
    • 为用户扩展也暴露HeaderTemplate和ContentTemplate属性来定义其标题和内容的一部分。 你可以找到这个从一种定制的Silverlight控件工具包示例

图片

  • 了解扩展的默认模板。 下面的屏幕快照显示了默认的模板如何处理的四个方向扩展和展开/折叠通过为ExpansionStates和ExpandDirectionStates视觉状态组故事情节的行为布局:
    • 整个头是一个模板切换按钮,所以点击页眉反正可以展开/折叠的内容区域。
    • 它使用一个2 × 2网格布局标题和内容领域。
    • 它规定了膨胀根据ExpandDirection通过让状态ExpandDirectionStates动画:
      • 它勾画出了他们的Grid.Row和Grid.Column动画标题和内容方面的属性。
      • 它吸引了正确的头切换按钮,通过改变它的模板。
    • 它扩展/折叠的动画在ExpanionStates状态转换可见属性内容领域。

ExpandDirection国家动画

下面的屏幕截图显示最要求定制。 如果你安装了Silverlight 2.0和你的读者支持实时Silverlight应用,你可以在这里玩太:

扩展定制

  • PDC08显示扩展在当前版本在Codeplex上。 有一个ExpanderRightHeaderTemplate使用(错误如果您设置ExpandDirection右)表示,导致高CPU和内存使用情况。 这是固定的修补程序将在几个星期我们在下一版本。 我很抱歉造成您的不便。 扩展器是我的第一个Silverlight控件。 我不知道Silverlight或WPF的东西之前,我加入了肖恩的团队在数个月回来,我仍然不能相信和动画的XAML多么脆弱的。 我花了很长的时间来追查一个字符的解决办法:1(共打)ObjectAnimationKeyFrames有意外Duration属性设置为“1”而不是“0”。 那使得Silverlight运行时螺母/内存和猪的CPU。
  • 新的(ExpanderStyle)显示了新的模板将很快发布。
  • 淡入/淡出(ExpanderFadeStyle)定制的展开/折叠的动画内容,不透明度,以淡化和退出行为。
  • 规模/输出(ExpanderScaleStyle)定制的展开/折叠的动画1和0之间ScaleTransform.ScaleX和ScaleTransform.ScaleY扩大和缩小的内容的行为。
  • 没有按钮(ExpanderNoButtonStyle)自定义,删除与箭头切换按钮圈的布局。 您仍然可以展开/折叠内容与鼠标或键盘。
  • 姆/右按钮(ExpanderBottomRightButtonStyle)通过把定制带有箭头的圆圈切换按钮,底部/标头的右部的布局。

源代码

你可以找到压缩的项目文件:


结论

扩展一直是我的博客热门关键字。 这是一个非常有用的控制和相对难以定制。 希望这个职位将帮助您使用和自定义扩展。 谢谢!

分享和欣赏:

  • Print
  • email
  • RSS
  • Twitter
  • TwitThis
  • del.icio.us
  • LinkedIn
  • Technorati
  • Facebook
  • Google Bookmarks
  • Live
  • MySpace
  • QQ书签