簡體   English   中英

UWP中的VisualState Storyboard.TargetName

[英]VisualState Storyboard.TargetName in UWP

我是使用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">

如何將Storyboard.TargetName設置為正在設置樣式的控件?

似乎您想為<Setter>設置屬性為BorderBrush動畫。 實際上,當使用Style定義控件模板時,其Control.Template setter的Style元素的TargetType和ControlTemplate元素的TargetType應當始終使用相同的值。詳細信息請參閱Setter類的 Styles and templates部分。

例如,您可以在Grid控件中找到BorderBrush屬性,該屬性在AppBarButton樣式和模板中名為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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM