受 Windows 8“现代 UI”应用程序的启发,我想在页面加载时将动画应用于页面中的所有 QML 元素。这样,页面上的每个单独元素都会在出现时进行动画处理。
我似乎在 QML 文档中找不到任何有用的东西。在 XAML 中,我可以通过以下方式完成此操作:
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
<StackPanel.ChildrenTransitions>
<TransitionCollection>
<EntranceThemeTransition FromHorizontalOffset="100"/>
</TransitionCollection>
</StackPanel.ChildrenTransitions>
[...]
</StackPanel>
有 QML 等价物吗?
我已经想出了如何为单个元素执行此操作,但我想要一种简单的方法来将动画应用于某些父级的每个元素,就像上面的 XAML 示例中一样。这是我的单元素实现:
Rectangle {
id: foobar
opacity: 0.001
anchors.centerIn: parent
anchors.horizontalCenterOffset: -100
Component.onCompleted: {
foobar.anchors.horizontalCenterOffset = 0
foobar.opacity = 1
}
Behavior on anchors.horizontalCenterOffset { PropertyAnimation{ duration: 250; easing.type: Easing.OutQuad } }
Behavior on opacity { NumberAnimation { property: "opacity"; to: 1; duration: 250; } }
}