Grid 更改网格列';世界其他地区';在Windows应用商店应用程序中按情节提要动画显示的宽度/高度
我正在寻找一些方法,通过Grid 更改网格列';世界其他地区';在Windows应用商店应用程序中按情节提要动画显示的宽度/高度,grid,storyboard,windows-store-apps,timeline,Grid,Storyboard,Windows Store Apps,Timeline,我正在寻找一些方法,通过故事板中定义的动画来更改网格列的宽度(或行的高度)。我已经找到了一些WPF应用程序的解决方案,但它们在Windows应用商店编程中都是无用的,例如: 这样的结果是否可以通过创建一个自定义类(从Timeline继承)来获得?如果是这样的话,哪些组件应该被重写以正确实现?您应该能够使用简单的双动画。确保将EnableDependentAnimation=True设置为大纲 尝试时需要了解的一点是,ColumnDefinitions是一个GridLengthstruct。
故事板中定义的动画来更改网格列的宽度(或行的高度)。我已经找到了一些WPF应用程序的解决方案,但它们在Windows应用商店编程中都是无用的,例如:
这样的结果是否可以通过创建一个自定义类(从Timeline继承)来获得?如果是这样的话,哪些组件应该被重写以正确实现?您应该能够使用简单的双动画。确保将EnableDependentAnimation=True
设置为大纲
尝试时需要了解的一点是,ColumnDefinitions
是一个GridLength
struct
。你可以找到更多关于它们的信息。您需要将动画设置为值
属性。下面是一个示例方法,用于设置网格列定义MaxWidth的动画
private void Animate(ColumnDefinition column)
{
Storyboard storyboard = new Storyboard();
Duration duration = new Duration(TimeSpan.FromMilliseconds(500));
CubicEase ease = new CubicEase { EasingMode = EasingMode.EaseOut };
DoubleAnimation animation = new DoubleAnimation();
animation.EasingFunction = ease;
animation.Duration = duration;
storyboard.Children.Add(animation);
animation.From = 1000;
animation.To = 0;
animation.EnableDependentAnimation = true;
Storyboard.SetTarget(animation, column);
Storyboard.SetTargetProperty(animation, "(ColumnDefinition.MaxWidth)");
storyboard.Begin();
}
GridLength.Value属性没有setter。我相信它也需要是一个依赖属性才能与DoubleAnimation一起工作。啊,你部分是正确的GridLength
是一个struct
,因此您需要将ColumnDefinition
的Width
设置为一个新的GridLength
。您可以发布一些如何使用DoubleAnimation实现这一点的示例代码吗?这将是非常有益的,非常感谢。