ResourceDictionary中的故事板

时间:2010-03-30 05:54:13

标签: silverlight xaml resourcedictionary

所以我想把我的故事板移到ResourceDictionary文件中,我很难做到这一点。我到处寻找,它涉及使“资源”可共享,但如果没有x:Shared属性,我如何在silverlight中执行此操作。这是代码

 <Storyboard x:Key="GreenButtonLight"  >
        <ColorAnimationUsingKeyFrames BeginTime="00:00:00"
                                      Storyboard.TargetName="GreenBelow"
                                      Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Color)">
            <SplineColorKeyFrame KeyTime="00:00:00"
                                 Value="#FF75F45D" />
            <SplineColorKeyFrame KeyTime="00:00:00.1000000"
                                 Value="#FFA5F796" />
            <SplineColorKeyFrame KeySpline="1,0,1,0.06"
                                 KeyTime="00:00:00.5000000"
                                 Value="#FF75F45D" />
        </ColorAnimationUsingKeyFrames>
</Storyboard>

以下是我在XAML中的内容

<Grid.Resources>
   <ResourceDictionary>
     <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Resources/ViewResources.xaml" />
        </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Grid.Resources>

这是我得到的错误

错误:元素已经是另一个元素的子元素。

当我放入故事板时,它只给我这个错误,没有别的(例如:样式)。我使用Silverlight 3而不是wpf。

1 个答案:

答案 0 :(得分:1)

您无法在资源中放置故事板,因为它是一个有状态对象。它知道它是否已经开始动画,它在时间轴中的位置等。此外,它的子动画获取对它们动画的对象和属性的引用。

通常,可以在控件模板中的元素的VisualStateManager中重复使用故事板。

相关问题