我正在使用Windows 8.1 RTM进行开发。我有一个自定义控件具有double类型的自定义依赖项属性。此控件已放置在用户控件中。我在用户控件上调用VisualStateManager.GoToState(control,true)。动画应该转换2秒钟。但是,它只是从0到1以及从1到0进行快照。回调函数仅使用0或1调用。如果我直接将依赖项属性设置为0到1之间的任何值,它将按预期工作。
我有以下XAML:
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:controls="using:MyControls" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="TestStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0:0:2"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="A">
<Storyboard>
<DoubleAnimation
EnableDependentAnimation="True"
Duration="0"
Storyboard.TargetName="MyControl1"
Storyboard.TargetProperty="MyDependencyProperty"
To="0"/>
</Storyboard>
</VisualState>
<VisualState x:Name="B">
<Storyboard>
<DoubleAnimation
EnableDependentAnimation="True"
Duration="0"
Storyboard.TargetName="MyControl1"
Storyboard.TargetProperty="MyDependencyProperty"
To="1"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<controls:MyControl x:Name="MyControl1" MyDependencyProperty="0">
</Grid>
</UserControl>
如果我将目标属性设置为不透明度,则可以正常工作。
看看之前的问题,EnableDependentAnimation似乎是这种行为的常见罪魁祸首,但我已将其设置为true。
Timeline.AllowDependentAnimations为真。
我已经将控件剥离到只有一个依赖属性,回调中没有逻辑。同样的问题。