gpt4 book ai didi

c# - 为什么动画 "Height"属性不能像 "Opacity"属性一样对 Windows Universal App 起作用?

转载 作者:行者123 更新时间:2023-11-30 14:51:51 24 4
gpt4 key购买 nike

使用以下代码:

        Storyboard storyBoard = new Storyboard();
DoubleAnimation doubleAnimation = new DoubleAnimation();
doubleAnimation.From = From;
doubleAnimation.To = To;
doubleAnimation.Duration = new Duration(new TimeSpan(0, 0, 0, seconds, miliseconds));

Storyboard.SetTarget(doubleAnimation, Target);
Storyboard.SetTargetProperty(doubleAnimation, FrameworkElemProperty);
storyBoard.Children.Add(doubleAnimation);
storyBoard.Completed += storyBoard_Completed;
storyBoard.Begin();

对于作为 FrameworkElemProperty 的“Opacity”非常有效,但在 Rectangle 的情况下不起作用,当我尝试为“Height”/“Width”属性设置动画时。有人知道这里发生了什么吗? Microsoft Framework 方面是否存在任何问题,或者这是否需要添加任何魔法? (不透明度和高度是 FrameworkElement 的相同属性,因此预计这将以相同的方式运行)在 Silverlight 中完美运行..

最佳答案

这是记录在案的行为。参见 Optimize animations, media, and images在 MSDN 上。

Opacity 是一种“独立动画”,不依赖于或影响其他属性或其他对象。可以完全运行在组合线程上,运行高效流畅。

高度是一种“依赖动画”,它会在更改时强制更新整体布局。这需要同步合成线程和 UI 线程,并可能导致渲染缓慢且效率低下。

依赖动画在默认情况下是禁用的,应尽可能避免使用。高度和宽度是文档中给出的具体示例,它们通常可以通过独立动画 RenderTransform 而不是更改布局来替换。

如果应用需要使用依赖动画,则可以通过设置动画的 EnableDependentAnimation 来启用它们属性为真和整体Timeline.AllowDependentAnimations为真。

关于c# - 为什么动画 "Height"属性不能像 "Opacity"属性一样对 Windows Universal App 起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33339703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com