質問

それで、ストーリーボードをResourcedictionaryファイルに移動したいと思いますが、それをするのに苦労しています。私はどこにでも見てきましたが、「リソース」を共有可能にすることが含まれますが、x:共有属性がない場合、シルバーライトでそれを行うにはどうすればよいですか。これがコードです

 <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>

そして、ここに私が得るエラーがあります

エラー:要素はすでに別の要素の子です。

ストーリーボードに入れたときにそのエラーを与えてくれるだけです。他に何もありません(例:スタイル)。 WPFではなくSilverlight 3を使用しています。

役に立ちましたか?

解決

ステートフルなオブジェクトであるため、ストーリーボードをリソースに配置することはできません。それがタイムラインなどのアニメーション化を開始したかどうかを知っています。また、その子アニメーションは、彼らがアニメーション化しているオブジェクトとプロパティへの参照を取得します。

通常、ストーリーボードは、コントロールテンプレートの要素のVisualStateManagerで再利用されるようにします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top