【问题标题】:How do I create a property of a user control to control the value of a storyboard keyframe?如何创建用户控件的属性来控制情节提要关键帧的值?
【发布时间】:2011-08-31 14:44:50
【问题描述】:

作为用户控件的介绍,我正在尝试创建一个 LED 用户控件。将 LEDControl 添加到我的 xaml 时,我希望能够指定 LED 的颜色 LEDColor。我为 LED 添加了两个故事板,TurnOn 和 TurnOff,它们在“关闭”(灰色)和“打开”(LEDColor)之间为矩形填充颜色设置动画。

如何动态指定情节提要用于“To”值的颜色?

注意,我正在使用 Silverlight for Windows Phone。在这一点上,我的目标是 wp7,但如果它更有意义的话,我对 Mango 解决方案持开放态度。

【问题讨论】:

    标签: silverlight xaml windows-phone-7


    【解决方案1】:

    非常简单,您只需像使用情节提要设置任何其他值一样设置值。

    这里我使用了{StaticResource LEDColor} 作为颜色。请记住,它必须是画笔,而不是颜色。

    它正在修改一个名为LEDControlRectagle 并具有0.5 的第二个动画时间。

    <Storyboard x:Name="TurnOn">
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="LEDControl">
            <DiscreteObjectKeyFrame KeyTime="0" Value="Grey"/>
        </ObjectAnimationUsingKeyFrames>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="LEDControl">
            <DiscreteObjectKeyFrame KeyTime="0.5" Value="{StaticResource LEDColor}"/>
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>
    
    <Storyboard x:Name="TurnOff">
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="LEDControl">
            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource LEDColor}"/>
        </ObjectAnimationUsingKeyFrames>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="LEDControl">
            <DiscreteObjectKeyFrame KeyTime="0.5" Value="Grey"/>
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>
    

    【讨论】:

    • 啊,这正是我想要的。希望今晚我回家并更新此线程时尝试一下。感谢您的回答!
    • 所以我试了一下,但我收到了一个关于无法找到 LEDColor 资源的错误。在用户控件代码隐藏中,我在用户控件类上有一个名为 LEDColor 的属性。我需要这个吗?我还需要做什么来连接这些?感谢您的帮助。
    • 您首先需要了解resource dictionaries 的工作原理。
    【解决方案2】:

    您在提问时可能需要更加精确。

    但是,如果您谈论的是我认为您是什么,您应该能够使用情节提要操作更改状态,因此当调用该情节提要操作时,它也会更改填充颜色。

    因此,当您为 StoryBoard 录制动作时,在 ON StoryBoard 上的属性面板中也会更改颜色。

    当然,如果您使用的是 Blend 4。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多