【发布时间】:2011-06-07 13:59:23
【问题描述】:
我又卡住了。
我正在用 C# 创建一个 WPF 项目...
我有一张图片(专辑封面),我将在后面的代码中进行更改,并希望基本上执行以下操作。
确定并获取新专辑封面图像后,我希望图像控件中的当前图像淡出,使用新封面进行更新,然后再淡入。
我没有看到很多关于如何在后面的代码中实现这一点的好例子。
以下是我最近一次失败的尝试...
if (currentTrack != previousTrack)
{
BitmapImage image = new BitmapImage();
image.BeginInit();
image.CacheOption = BitmapCacheOption.OnLoad;
image.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
image.UriSource = new Uri(Address, UriKind.Absolute);
image.EndInit();
Storyboard MyStoryboard = new Storyboard();
DoubleAnimation FadeOut = new DoubleAnimation();
FadeOut.From = 1.0;
FadeOut.To = 0.0;
FadeOut.Duration = new Duration(TimeSpan.FromSeconds(.5));
MyStoryboard.Children.Add(FadeOut);
Storyboard.SetTargetName(FadeOut, CoverArt.Name);
Storyboard.SetTargetProperty(FadeOut, new PropertyPath(Rectangle.OpacityProperty));
CoverArt.Source = image;
DoubleAnimation Fadein = new DoubleAnimation();
Fadein.From = 0.0;
Fadein.To = 1.0;
Fadein.Duration = new Duration(TimeSpan.FromSeconds(.5));
MyStoryboard.Children.Add(Fadein);
Storyboard.SetTargetName(Fadein, CoverArt.Name);
Storyboard.SetTargetProperty(Fadein, new PropertyPath(Rectangle.OpacityProperty));
MyStoryboard.Begin(this);
}
我更喜欢在后面的代码中执行此操作,因为这是我获取图像的地方。否则,我不确定如何触发它。
一个例子将不胜感激。
【问题讨论】:
-
这是 Windows 窗体或 ASP.NET Web 窗体或 MVC 还是 ...?
-
对不起,这是一个使用 C# 代码的 WPF 项目。
标签: c# wpf image transition storyboard