C# · 12月 25, 2021

c# – 在WinRT中使用FadeInThemeAnimation作为转换

我在C#/ XAML WinRT应用程序中使用托管在服务器上的图像.当下载该图像时,我希望它能够淡入.我注意到了我希望使用的FadeInThemeAnimation.但是,我想像EntranceThemeTransition一样使用它.有没有办法做到这一点?如果是这样,怎么样?解决方法 我遇到了同样的问题,但找到了一个解决方案,我认为分享它可能仍然有用.

显然,FadeInThemeAnimation是一种特殊的动画,不像你想象的那样对Opacity和Visibility起作用,但是在一个项目的RenderTransform上.我只是在使用FadeOutThemeAnimation淡出项目时才设法使它工作.

但这是一个解决方法.在您的XAML中,将Storyboard添加到图像容器的Resources中,如下所示:

<Grid> <Grid.Resources> <Storyboard x:Name=”ImageFadeInStoryboard”> <DoubleAnimation From=”0″ To=”1″ Storyboard.TargetName=”yourImage” Storyboard.TargetProperty=”Opacity” Duration=”0:0:0.6″ /> </Storyboard> </Grid.Resources> <Image x:Name=”yourImage” Source=”{Binding …}”/>…

然后为图像的ImageOpened事件添加一个处理程序:

<Image x:Name=”yourImage” Source=”{Binding …}” ImageOpened=”OnImageOpened”/>

在代码隐藏中:

private void OnImageOpened(object sender,RoutedEventArgs e){ ImageFadeInStoryboard.Begin();}

希望有帮助:)