Domanda

Quindi vorrei spostare i miei storyboard in un file ResourceDictionary e sto avendo difficoltà a farlo. Ho guardato dappertutto e si tratta di fare la "risorsa" condivisibili, ma come faccio a farlo in Silverlight quando non c'è x: attributo comune. Ecco il codice

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

Ecco quello che ho in XAML

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

e qui è l'errore che ottengo

Errore: Element è già il figlio di un altro elemento.

Mi dà solo errore quando ho messo in storyboard, niente altro (es: stili). Sto usando Silverlight 3 e non WPF.

È stato utile?

Soluzione

Non è possibile inserire uno storyboard in una risorsa perché è un oggetto stateful. Si sa se è iniziata l'animazione, dove si trova nella timeline ecc Inoltre le sue animazioni per bambini acquisiscono una riferimenti agli oggetti e le proprietà che stanno animando.

In genere si mette storyboard per essere riutilizzati nel VisualStateManager di un elemento in modello di controllo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top