我是一个新手,正在查看这个示例 http://www.codeproject.com/Articles/199014/Page-Transition-Control-for-WPF
它有很多像这样的 Storyboard对象
<DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[1].(SkewTransform.AngleX)" To="100" Duration="0:0:.75" AccelerationRatio=".9" />
以及像这样的 TransformGroup
`<ScaleTransform
ScaleX="1" ScaleY="1"
CenterX="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualWidth, Converter={StaticResource centerConverter}}"
CenterY="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualHeight, Converter={StaticResource centerConverter}}"
/>
<SkewTransform
AngleX="0"
AngleY="0"
CenterX="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualWidth, Converter={StaticResource centerConverter}}"
CenterY="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualHeight, Converter={StaticResource centerConverter}}"
/>
<RotateTransform
Angle="0"
CenterX="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualWidth, Converter={StaticResource centerConverter}}"
CenterY="{Binding RelativeSource={RelativeSource AncestorType=Grid, Mode=FindAncestor}, Path=ActualHeight, Converter={StaticResource centerConverter}}"
/>
<TranslateTransform X="0" Y="0" />`
有人可以向我解释一下它是如何工作的吗,这太令人困惑了!我花了一整天的时间阅读Xaml和wpf书籍,但我仍然不明白。当我尝试通过简化代码来理解时,我不断收到如下错误:“[Unknown]”属性未指向路径“(RenderTransform).(0)[1].(1)”中的 DependencyObject
WPF真的那么难吗!?!?!?
最佳答案
如果您是 WPF 新手,动画可能不是最好的起点,但我会看看是否可以解释一下。
WPF 中有两种类型的“变换”,可用于修改 UI 对象的外观。
LayoutTransform
在 WPF 确定对象在屏幕上的布局方式后修改该对象RenderTransform
在渲染到屏幕后修改对象
这两个属性都包含 transformations 的集合对象发生的情况:旋转
、缩放
、倾斜
和平移
(向上/向下或向左/移动)右)
安Animation是在特定时间段内将属性从一个值更改为另一个值的事物。例如,您可以在 1 秒内将对象的 Height
属性从 50 更改为 200,以使该对象在屏幕上明显变大。
您正在查看的代码是这些动画之一。
<DoubleAnimation
Storyboard.TargetProperty="(RenderTransform).(TransformGroup.Children)[1].(SkewTransform.AngleX)"
To="100" Duration="0:0:.75" AccelerationRatio=".9" />
标签名称告诉我们它是一个 DoubleAnimation
,这意味着它正在修改 double
类型的属性。
TargetProperty
告诉我们它正在修改 RenderTransform
集合中的第二个对象(为了简化一点,RenderTransform.Children[1]
)
变换预计有一个 SkewTransform
,并且动画设置为将 AngleX
属性从现在的值更改为 100
,持续 0:0:.75
秒
我不太熟悉 AccelerationRatio属性,但我相信它会修改值从起始值加速到最终值的速度。
关于wpf - 有人可以教我如何阅读 Storyboard.TargetProperty 及其转换组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14650702/