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应用

Windows 应用商店应用程序 - 动态绑定

iOS,所有 5 个应用商店屏幕截图宽度(有间隙)?

如何使 Windows 商店应用程序与 TLS 1.2 一起使用?

Flexbox 进度条动画 - 宽度不正确