使用可视图层动画时实际高度不受影响?

时间:2018-03-17 13:14:22

标签: c# xaml uwp

我有两个不同的网格,一个堆叠在另一个网格上。现在我正在尝试减小第一个网格的大小(使用可视图层动画),这样其他网格现在占用了所有空间。

ScalarKeyFrameAnimation animation1 = compositor.CreateScalarKeyFrameAnimation();
        animation1.InsertKeyFrame(1.0f, 0);
        animation1.Duration = TimeSpan.FromMilliseconds(300);
         visual.StartAnimation(nameof(visual.Scale) + "." + nameof(visual.Scale.Y), animation1);

我尝试过操纵偏移和缩放属性,但没有一个能够改变网格的实际高度。结果,第二个网格不会从它的位置移动。

Live visual tree values

以上是实时可视树值,实际高度不受比例或偏移动画的影响。没有"第二个网格"占据整个空间动画正在发生。

1 个答案:

答案 0 :(得分:1)

ActualHeight& ActualWidth是布局引擎设置的值。

在布局通过后,XAML中的VisualLayer动画和RenderTransform动画应用,并且不会更新影响任何布局属性。由于缺乏更好的词,它们是“渲染时间”属性。对它们的任何更改都不会影响任何布局其他对象。

如果你真的喜欢这个,你需要使用LayoutTransform或动画宽度和宽度。对象的高度,如果他们使用Storyboard有一组。但请注意,这将导致动画在UI线程上运行,因为它们需要布局引擎每帧重新运行传递,这将降低性能。