.net WinRT动画没有';不显示中间值
在WinRT中,许多动画根本不显示任何中间值,或者只在移动鼠标或发生其他系统事件时显示它们,这很奇怪。在动画结束时,会正确设置值,但在执行期间(在我的情况下,动画持续2秒),不会显示中间值 2秒钟后,窗口消失,但按X键时看不到它翻转。有时,如果在动画中移动鼠标,可以看到它,但这通常仅在XAML图形更复杂时发生 以下是XAML:.net WinRT动画没有';不显示中间值,.net,xaml,animation,windows-runtime,winrt-xaml,.net,Xaml,Animation,Windows Runtime,Winrt Xaml,在WinRT中,许多动画根本不显示任何中间值,或者只在移动鼠标或发生其他系统事件时显示它们,这很奇怪。在动画结束时,会正确设置值,但在执行期间(在我的情况下,动画持续2秒),不会显示中间值 2秒钟后,窗口消失,但按X键时看不到它翻转。有时,如果在动画中移动鼠标,可以看到它,但这通常仅在XAML图形更复杂时发生 以下是XAML: 添加flipAnim.EnableDependentAnimation=true,它会工作。出于某种原因,当您使用接近零的值时,它会工作,但实际上不是零
添加flipAnim.EnableDependentAnimation=true代码>,它会工作。出于某种原因,当您使用接近零的值时,它会工作,但实际上不是零
private void CloseBorder_OnPointerReleased(object sender, PointerRoutedEventArgs e)
{
// Spin AnimatedDialog to close.
var storyboard = new Storyboard();
var projection = AnimatedDialog.Projection as PlaneProjection;
projection.CenterOfRotationY = 0.5;
projection.RotationX = .0000000001; // <--- this line changed
var flipAnim = new DoubleAnimation();
Storyboard.SetTarget(flipAnim, projection);
Storyboard.SetTargetProperty(flipAnim, "RotationX");
// 2 second flip
flipAnim.Duration = new Duration(new TimeSpan(0, 0, 2));
flipAnim.EasingFunction = new QuadraticEase { EasingMode = EasingMode.EaseIn };
flipAnim.From = projection.RotationX; // <--- this line changed
flipAnim.To = 90;
storyboard.Children.Add(flipAnim);
storyboard.Completed += StoryboardOnCompleted;
storyboard.Begin();
}
private void StoryboardOnCompleted(object sender, object o)
{
Debug.WriteLine("Completed storyboard.");
}
private void CloseBorder\u OnPointerReleased(对象发送方,PointerRoutedEventArgs e)
{
//旋转动画对话框以关闭。
var storyboard=新故事板();
var projection=动画对话框。投影为平面投影;
投影。旋转中心Y=0.5;
projection.RotationX=.000000000 1;//没有,抱歉。我知道相关动画,但这不是一个。我用您的代码创建了一个新项目,当我添加EnableDependentAnimation时,对话框就会翻转。如果移动鼠标,它确实可能会翻转。其他系统事件似乎也会启动动画。这是o原始问题。单击X后,尝试根本不移动鼠标,然后再移动几次,然后让我知道结果。谢谢!你说得对,如果我不移动鼠标光标,动画也不会发生。我尝试了几种方法,但我不知道为什么这不起作用。是的,如果在这方面移动鼠标通常对我不起作用例如。坦率地说,我在WinRT中的很多动画中都看到了这种精确的行为。我认为这是一个bug,并在Microsoft Connect上提交了它。对我来说,添加这一行没有什么区别。我怀疑你在移动鼠标(更仔细地阅读原始问题)。你能在点击X后尝试保持鼠标静止吗?请尝试几次,让我知道发生了什么。我没有移动鼠标。我完全按照你的要求做了,我确实看到它在没有动画的情况下翻转。但是,我的实现更改了两行,并且它在没有移动鼠标的情况下100%工作。请查看评论在代码中,可以看到更改了什么。实际上,我更改了两行,但只有当您移动鼠标时,这两行仍然有效。您是否绝对确定在单击时保持鼠标不动?好的,我错误地键入了第二行,您是对的,如果您这样做,它会起作用。这确实非常奇怪。我可能已将其提交给Microsoft Connect他们可以给出更好的解释。谢谢,我将此标记为解决方案。还注意到,如果您使用带关键帧的DoubleAnimation
而不是DoubleAnimation
,则只需更改第一行。此外,从90到0的动画设置总是有效的,而不是从0(准确地)到90。