Windows 应用商店应用程序中宽度动画的正确属性路径(Windows 8.1 及更高版本)
Posted
技术标签:
【中文标题】Windows 应用商店应用程序中宽度动画的正确属性路径(Windows 8.1 及更高版本)【英文标题】:Correct Property Path for Width-Animation in Windows Store Apps (Windows 8.1 and above) 【发布时间】:2017-04-20 11:16:50 【问题描述】:我不明白为什么我的 Canvas.Left 和 Canvas.Top 动画正在运行,但我的宽度和高度动画却没有。
这是一个完美运行的代码示例:
DoubleAnimation doubleAnimationCanvasLeft = new DoubleAnimation();
doubleAnimationCanvasLeft.From = Canvas.GetLeft(aDiceToBeChecked.myGrid);
doubleAnimationCanvasLeft.To = Canvas.GetLeft(aDiceToBeChecked.myGrid) - 102;
doubleAnimationCanvasLeft.Duration = TimeSpan.FromMilliseconds(myTimespan);
doubleAnimationCanvasLeft.FillBehavior = FillBehavior.HoldEnd;
Storyboard storyboardCanvasLeft = new Storyboard();
storyboardCanvasLeft.Children.Add(doubleAnimationCanvasLeft);
Storyboard.SetTarget(storyboardCanvasLeft, aDiceToBeChecked.myGrid);
Storyboard.SetTargetProperty(storyboardCanvasLeft, "(Canvas.Left)");
storyboardCanvasLeft.Begin();
同样的宽度不起作用:
DoubleAnimation doubleAnimationGridWidth = new DoubleAnimation();
doubleAnimationGridWidth.From = 200.0;
doubleAnimationGridWidth.To = 304.0;
doubleAnimationGridWidth.Duration = TimeSpan.FromMilliseconds(myTimespan);
doubleAnimationGridWidth.FillBehavior = FillBehavior.HoldEnd;
Storyboard storyboardGridWidth = new Storyboard();
storyboardGridWidth.Children.Add(doubleAnimationGridWidth);
Storyboard.SetTarget(storyboardGridWidth, aDiceToBeChecked.myGrid);
Storyboard.SetTargetProperty(storyboardGridWidth, "(Width)");
storyboardGridWidth.Begin();
它不适用于 Width、(Width)、(UIElement.Width)、(Grid.Width),如果属性路径甚至是问题,我真的不确定如何获得正确的属性路径!?你能帮帮我吗?
我正在使用 Net 版本 4.5.1 和 Visual Studio Express 2013 并针对 Windows 8.1 和 Windows 10 进行开发。
【问题讨论】:
【参考方案1】:我找到了丢失的部分:
doubleAnimationGridWidth.EnableDependentAnimation = true;
如果其他人正在阅读此内容:这意味着此动画正在使用更多 UI 线程的资源。 Microsoft 网站上有更多信息。
不过,如果有人能告诉我如何构建和/或调试这些属性路径...
【讨论】:
以上是关于Windows 应用商店应用程序中宽度动画的正确属性路径(Windows 8.1 及更高版本)的主要内容,如果未能解决你的问题,请参考以下文章
Android属动画ObjectAnimator和ValueAnimator应用