首页 > 设计时Silverlight的 “>”自定义Silverlight工具包控制:扩展

自定义Silverlight工具包控制:扩展

Go to comments 2008年11月26日 ,日 发表评论我要评论

简介

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

扩展自定义

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

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

形象

  • 了解扩展的默认模板。 下面的屏幕截图显示的默认模板如何处理四个拓展方向的布局和提供的Storyboard ExpansionStates和ExpandDirectionStates视觉状态组展开/崩溃的行为:
    • 整个头是一个模板的切换按钮,点击页眉反正可以展开/折叠内容区域。
    • 它采用2 × 2的网格布局头和内容区。
    • 它勾画出的扩展,根据ExpandDirectionStates国家动画ExpandDirection:
      • 动画Grid.Row和Grid.Column属性奠定了头和内容领域。
      • 它提请头切换按钮,正确地改变它的模板。
    • 它扩展/折叠动画ExpanionStates状态转换其visibility属性的内容领域。

ExpandDirection国家动画

下面的屏幕截图显示了最常见的自定义。 如果您已经安装了Silverlight 2.0的,和你的读者支持实时Silverlight应用程序,你可以发挥它在这里也:

扩展自定义

  • PDC08显示在扩展当前版本在CodePlex上。 有一个错误(如果你设置ExpandDirection右)在ExpanderRightHeaderTemplate,导致高CPU和内存使用。 这是固定的,并在几周内修复将在我们的下一个版本。 我很抱歉给您带来不便。 扩展是我的第一个Silverlight控件。 我不知道任何关于Silverlight或WPF之前,我加入了肖恩的团队几个月前,我仍然不能相信多么脆弱XAML和动画。 我花了很长的时间来追查一个字符FIX:一个(几十)ObjectAnimationKeyFrames Duration属性意外地设置为“1”,而不是“0”。 驱使Silverlight运行时坚果和生猪CPU /内存。
  • 新(ExpanderStyle)即将发布新的模板。
  • 淡入/输出(ExpanderFadeStyle)自定义动画不透明度淡入淡出的内容展开/折叠行为。
  • 在输入/输出(ExpanderScaleStyle)的规模定制动画ScaleTransform.ScaleX和ScaleTransform.ScaleY 1和0之间扩大和缩小的内容展开/折叠行为。
  • 否“按钮(ExpanderNoButtonStyle)自定义箭头切换按钮删除圈的布局。 您仍然可以展开/折叠鼠标或键盘的内容。
  • 底/右按钮(ExpanderBottomRightButtonStyle)定制的布局,把圆圈箭头切换按钮头底部/右侧部分。

源代码

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


结论

扩展一直到我的博客顶部的关键字。 这是一个非常有用的控制和自定义比较硬。 希望这篇文章将帮助您在使用和定制扩展。 谢谢!

  1. 先生邦哥
    2011年2月20日,3时21分| #1

    @先生 搞糟
    希望做到这一点,我所能做的最好的设置可见的内部控制扩展到在XAML中倒塌,然后大呼过瘾父扩展控制的展开和折叠事件和设置的内部控制扩展的知名度可见(扩大事件)和折叠(在倒塌的事件)。 这给在效果略短的淡出,淡出完全消失了,但至少布局是工作的罚款。

  2. 先生邦哥
    2011年2月20日,2时54分| #2

    fadeexpanderstyle是伟大的,但它需要的内容的高度予以曝光,而扩展仍然在“坍塌”的模式。 因此,这意味着你不能在一个垂直的StackPanel一些扩展。 是否有任何(simplish)的风格进行修改,以便扩展风格fadeexpanderstyle的高度为0时倒塌?

  3. 匿名
    2009年9月9日10点33分| #3

    高宁,

    是否可以用别的东西代替的扩展按钮的图标。 你有一个这样的例子。 帮助表示高度赞赏。

    此致
    Sanket

  4. 匿名
    2008年12月31日,16时37分|# 4

    感谢这个伟大的控制,但我建议更改下列:

    如果一个人“ExpandRight”把扩大方向和内容倒塌,箭头指向左侧方向的切换按钮。 这有点讨厌。 我建议让箭头切换按钮,默认情况下,指向正确的方向,内容时,在ExpandRight国家崩溃的修复控制。

    当内容倒塌,这种行为会为用户提供更好的,因为箭头切换按钮点那个方向,其中的内容将出现。

    最佳电子方面从LawBot
    (德国汉堡)

  5. 匿名
    2008年12月12日9点56 | #5

    在12月版的扩展头的高度已经改变。 我该如何改变它 - 我无法找到任何Height属性HeaderedContentControl.Header?

  6. 匿名
    2008年12月1日起,在10时34 | #6

    你有任何动画扩展的下拉的例子吗? 我需要一个扩展的开始为未展开,然后逐步扩展到全高度的ContentControl的。 淡入/输出和输入/输出规模是好的,但他们所需要的扩展,开始在全高度。

  7. 匿名
    2008年11月27日00:00 | #7

    高宁,

    感谢此更新。 我希望能找到正确的“按钮”的样本,这似乎做的工作。

    谢谢,
    马丁

  1. 还没有引用通告。