【问题标题】:Storyboards in ResourceDictionaryResourceDictionary 中的情节提要
【发布时间】:2010-03-30 05:54:13
【问题描述】:

所以我想将我的 Storyboards 移动到 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。

【问题讨论】:

    标签: silverlight xaml resourcedictionary


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      • 1970-01-01
      • 2016-11-16
      • 2014-02-22
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多