2

我有以下视觉状态定义:

<VisualStateManager.CustomVisualStateManager>
    <ec:ExtendedVisualStateManager/>
</VisualStateManager.CustomVisualStateManager>
<VisualStateManager.VisualStateGroups>
    <VisualStateGroup x:Name="Highlight">
        <VisualState x:Name="Active">
            <Storyboard>
                <ColorAnimation Duration="0"
                                To="{StaticResource PhoneAccentColor}" 
                                Storyboard.TargetProperty="(Shape.Stroke).(SolidColorBrush.Color)"
                                d:IsOptimized="True"/>
            </Storyboard>
        </VisualState>
        <VisualState x:Name="Inactive"/>
    </VisualStateGroup>
</VisualStateManager.VisualStateGroups>

还有一些矩形:

<Rectangle x:Name="A" Width="10" Height="10" Stroke="#00000000" StrokeThickness="4" />
<Rectangle x:Name="B" Width="10" Height="10" Stroke="#00000000" StrokeThickness="4" />
<Rectangle x:Name="C" Width="10" Height="10" Stroke="#00000000" StrokeThickness="4" />
<Rectangle x:Name="D" Width="10" Height="10" Stroke="#00000000" StrokeThickness="4" />

在我的布局根堆栈面板中。

我想将Active状态应用于矩形 A 和 C。这感觉像是一份工作ExtendedVisualStateManager.GoToElementState

ExtendedVisualStateManager.GoToElementState(this.A, "Active", true);
ExtendedVisualStateManager.GoToElementState(this.B, "Inactive", true);
ExtendedVisualStateManager.GoToElementState(this.C, "Active", true);
ExtendedVisualStateManager.GoToElementState(this.D, "Inactive", true);

但是,这不起作用 - 动画没有Storyboard.TargetName定义。

如何获取GoToElementState故事板中传递给的第一个参数,以便将动画附加到它?

4

0 回答 0