我正在尝试在可以从可视树中动态添加和删除的代码中为 UIElements 创建隐式显示和隐藏动画。我尝试了以下方法:
private void testButton_Tapped(object sender, TappedRoutedEventArgs e)
{
var myImage = new Image();
myImage.Source = new BitmapImage(new Uri("https://upload.wikimedia.org/wikipedia/commons/c/c4/PM5544_with_non-PAL_signals.png"));
var visual = ElementCompositionPreview.GetElementVisual(myImage);
var animation = visual.Compositor.CreateVector3KeyFrameAnimation();
var easing = visual.Compositor.CreateLinearEasingFunction();
animation.InsertKeyFrame(0f, new Vector3(1200f, 0f, 0f), easing);
ElementCompositionPreview.SetImplicitShowAnimation(myImage, animation);
TestGrid.Children.Add(myImage);
}
...并且应用程序和调试器因未处理的异常而崩溃。单步执行代码时,只要我越过方法的右括号,就会发生崩溃。另请注意,我尝试了相同的代码,但使用了所有全局变量,所以我认为它不是 GC。