1

所以我想将我的故事板移动到一个 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。

4

1 回答 1

1

您不能将情节提要放在资源中,因为它是有状态的对象。它知道它是否已经开始制作动画,它在时间轴中的什么位置等。它的子动画也获取对它们正在制作动画的对象和属性的引用。

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

于 2010-03-30T16:21:18.677 回答