これは私を困惑させました。だから私はマウスがそれの上にぶら下がっているときに境界要素の不透明度をアニメーション化する予定の次のサンプルアプリケーションがあります。 `VisualStateManager.GoToStateは常にfalseを返します
<UserControl.Resources>
<Style x:Key="borderstyle" TargetType="ContentControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ContentControl">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="FirstState">
<Storyboard>
<DoubleAnimation To="1.0" Storyboard.TargetName="border" Storyboard.TargetProperty="Opacity" FillBehavior="HoldEnd"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border Background="Blue" x:Name="border" Opacity="0.0"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<Border BorderBrush="Red" BorderThickness="1" Width="51" Height="51">
<ContentControl Width="50" Height="50" Style="{StaticResource borderstyle}" MouseEnter="OnMouseEntered" />
</Border>
</Grid>
`
そして、私は次のコードを持っているの背後にあるコードで...
private void OnMouseEntered(object sender, MouseEventArgs e)
{
bool status = VisualStateManager.GoToState(this, "FirstState", true);
}
そして...何も起こりません。 ステータスは常にfalseで、アニメーションは決して起動しません。
私はここに何が欠けているのかわかりません。
ワウ...クールな感謝。私は通常、カスタムコントロールを構築し、 "この"正常に動作するので、私は困惑していたと思う。今私は:)おかげで – Senkwe