Ich brauche einen Einblendeffekt auf meinem Hintergrundbild. Während der Laufzeit kann die Bildquelle geändert werden, was mit der gesetzten Bindung wie erwartet funktioniert. Auf jeden Fall hat die entsprechende Animation keine visuellen Effekte. Im Moment sieht mein XAML wie folgt aus:UWP - FadeIn Effekt auf das Hintergrundbild
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
xmlns:Media="using:Microsoft.Xaml.Interactions.Media"
<Page.Content>
<Grid>
<Grid.Background>
<ImageBrush x:Name="image" ImageSource="{Binding Path=ImageSource,UpdateSourceTrigger=PropertyChanged}" Stretch="UniformToFill" >
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior EventName="ImageOpened" >
<Media:ControlStoryboardAction ControlStoryboardOption="Play">
<Media:ControlStoryboardAction.Storyboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:1" Storyboard.TargetName="image"/>
</Storyboard>
</Media:ControlStoryboardAction.Storyboard>
</Media:ControlStoryboardAction>
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</ImageBrush>
</Grid.Background>
Wenn ich statt:
[...]
<Media:ControlStoryboardAction.Storyboard>
<Storyboard>
<FadeInThemeAnimation Storyboard.TargetName="Image" />
</Storyboard>
</Media:ControlStoryboardAction.Storyboard>
ich
System.Runtime.InteropServices.COMException: keine installierten Komponenten erkannt wurden.
TargetName Image kann nicht aufgelöst werden. unter Windows.UI.Xaml.Media.Animation.Storyboard.Begin() bei Microsoft.Xaml.Interactions.Media.ControlStoryboardAction.Execute (Objekt Absender, Objekt Parameter) bei Microsoft.Xaml.Interactivity.Interaction.ExecuteActions (Object Absender, ActionCollection-Aktionen, Objektparameter) bei Microsoft.Xaml.Interactions.Core.EventTriggerBehavior.OnEvent (Object sender, Objekt eventArgs)
Irgendwelche Ideen?
[Bearbeiten] Dank der Antwort von @SWilko, stelle ich fest, dass die Animation nur auf einem Bild funktioniert. Mein Code oben funktioniert, wenn ich den ImageBrush zu einem Bild ändere und ich es in das Raster (nicht Grid.Background) platziere.
Dank @Swilko für die Lösung. Ich habe das Bild während der Laufzeit mehr als einmal gesetzt. Sobald die Animation ausgeführt wird, ist die Deckkraft 1. Ich muss die Deckkraft für jede Animation auf 0 zurücksetzen. Wie kann ich das erreichen? – Briefkasten
Code hinter Way aber deinen Weg viel hinzugefügt einfacher :) – SWilko