UWP中的VisualState Storyboard.TargetName

时间:2017-08-15 12:24:51

标签: xaml uwp-xaml

我是否熟悉使用VisualStates并想知道如何将Storyboard.TargetName设置为正在设置样式的控件?

我希望以下代码片段能让我的问题更加清晰。

<Style x:Key="AppBarBtnStyle" TargetType="AppBarButton">

    <Setter Property="BorderBrush" Value="Gray"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="AppBarButton">
<Grid x:Name="Root"
 <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Flash">
                                    <Storyboard>
                                        <ColorAnimationUsingKeyFrames Storyboard.TargetName="WHAT GOES HERE TO TARGET THE BORDERBRUSH SET PREVIOUSLY ABOVE" Storyboard.TargetProperty="(BorderBrush).(SolidColorBrush.Color)"  Duration="0:0:1">

1 个答案:

答案 0 :(得分:0)

  

如何将Storyboard.TargetName设置为正在设置样式的控件?

您似乎希望为<Setter>设置BorderBrush属性的动画。实际上,当使用Style定义控件模板时,Style元素的TargetType和ControlTemplate元素的ControlTemplate元素的TargetType应始终使用相同的值。详细信息请参考{{3}的样式和模板部分}。

例如,您可以在BorderBrush控件中找到Grid属性,在Setter class内将Root命名为<Grid x:Name="Root" MinWidth="{TemplateBinding MinWidth}" MaxWidth="{TemplateBinding MaxWidth}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">

Storyboard.TargetName

通过在此处为颜色动画设置Root<VisualState x:Name="Normal"> <Storyboard> <ColorAnimationUsingKeyFrames Storyboard.TargetName="Root" Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" Duration="0:0:5"> <LinearColorKeyFrame KeyTime="00:00:02" Value="Blue" /> <DiscreteColorKeyFrame KeyTime="00:00:2.5" Value="Yellow" /> </ColorAnimationUsingKeyFrames> <PointerUpThemeAnimation Storyboard.TargetName="OverflowTextLabel" /> </Storyboard> </VisualState> 元素,您可以满足您的要求。

admin.py
相关问题