自定义Silverlight工具包控制:扩展
11月26日,2008年 7评论
介绍
这是自定义Silverlight工具包控制系列的第二个职位。 这篇文章演示了如何自定义扩展,并提供从Silverlight工具包 论坛的大部分要求定制。
扩展定制
要自定义扩展,这是非常重要的是了解它的API和默认模板,并知道如何使用混合模板重新控制。 我强烈建议你阅读我以前的帖子Silverlight工具包的扩展控制,如果你还没有。 自定义扩展的关键:
- 了解扩展接口,尤其是其控制合同:
- 扩展期望一个模板的一部分,其模板切换按钮名为“ExpanderButton”的,。 其功能展开/崩溃取决于这个模板的一部分存在,因为Silverlight不支持两种方式的结合。
- 扩展公开ExpansionStates视觉状态组(包括展开和折叠的两个视觉状态)为用户定制的扩大和崩溃的行为。
- 扩展公开ExpandDirectionStates视觉状态组(包括ExpandDown,ExpandUp,ExpandLeft,ExpandRight),为用户自定义为每个四个拓展方向的布局。
- 扩展也暴露出HeaderTemplate和的ContentTemplate属性为用户自定义它的头和内容的一部分。 你可以找到这个从定制的Silverlight Control Toolkit中的实物样品 。
- 理解扩展的默认模板。 下面的屏幕截图显示了默认的模板如何处理四个拓展方向和行为展开/折叠的ExpansionStates和Storyboard的视觉状态组ExpandDirectionStates的布局:
- 整个头是一个模板的切换按钮,点击页眉反正可以展开/折叠的内容区域。
- 它采用2×2的网格布局标题和内容区。
- 它勾画出的扩展,根据以ExpandDirection通过国家ExpandDirectionStates动画:
- 它勾画出动画他们的Grid.Row和Grid.Column属性头和内容领域。
- 它吸引了头切换按钮正确通过改变它的模板。
- 它扩展/折叠动画在ExpanionStates状态转换的Visibility属性的内容领域。
下面的屏幕截图显示的要求定制。 如果你有安装Silverlight 2.0的,和你的读者支持实时Silverlight应用程序,你可以发挥它这里:
- PDC08显示在扩展CodePlex上的当前版本 。 有是在ExpanderRightHeaderTemplate错误(如果你设置ExpandDirection右),导致高CPU和内存使用。 这是固定和修复将是我们在未来几周释放。 我带来的不便表示歉意。 扩展是我的第一个Silverlight控件。 我不知道任何有关Silverlight或WPF之前,我几个月前加入肖恩的团队,我仍然不能相信多么脆弱XAML和动画。 我花了很长一段时间来跟踪一个字符修复:(出几十个)ObjectAnimationKeyFrames意外已Duration属性设置为“1”而不是“0”。 推动Silverlight运行时,坚果和生猪CPU /内存。
- 新(ExpanderStyle)展示了即将发布的新模板。
- 淡入/输出(ExpanderFadeStyle)自定义动画透明度淡入淡出的内容展开/折叠行为。
- 在输入/输出(ExpanderScaleStyle)大规模定制动画1和0之间ScaleTransform.ScaleX和ScaleTransform.ScaleY扩大和缩小的内容展开/折叠行为。
- 没有按钮(ExpanderNoButtonStyle)定制箭头切换按钮删除圈的布局。 你仍然可以展开/折叠鼠标或键盘的内容。
- 底/右按钮(ExpanderBottomRightButtonStyle)定制的布局,把圆圈箭头切换按钮头底部/右侧部分。
源代码
你可以找到压缩的项目文件:
结论
扩展一直到我的博客顶端关键字。 这是一个非常有用的控制和自定义比较硬。 希望这篇文章将帮助您在使用和定制扩展。 谢谢!
Blend , Expander , Silverlight , Silverlight Toolkit , WPF 分类: 设计时 , Silverlight的 混合 的Silverlight , WPF , Silverlight工具包 , 扩展 ,








最新评论