简体   繁体   中英

Storyboard label style how to apply background when datatrigger false?

I have a simple for with a set of labels on a grid, i have added a label style storyboard for flashing when NodeFlash is set to true and this works fine, however when NodeFlash set to false the label remains white background / white text and not the background color set in NodeStatus ( ie green, red etc ). where would i need to force the background color setting in the exit actions or else where?

heres the view.xaml

        <Grid> 
    <ItemsControl ItemsSource = "{Binding Path = CIs}">

            <ItemsControl.ItemTemplate>
                <DataTemplate>
                <Grid>
                    <Label 

                        Content = "{Binding Path = NodeName, Mode = OneWay}" 
                        Background = "{Binding Path = NodeStatus, Mode = OneWay}"
                        Tag="{Binding Path = Nodeid, Mode = OneWay}"
                        Foreground="White"
                        FontFamily="Arial Black"
                        HorizontalContentAlignment="Center"                            
                        BorderBrush="Black" 
                        BorderThickness="1,1,1,1">
                        <Label.Style>
                            <Style TargetType="{x:Type Label}">
                                <Style.Resources>
                                    <Storyboard x:Key="flashAnimation" >
                                        <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" AutoReverse="True" Duration="0:0:0.5" RepeatBehavior="Forever" />
                                    </Storyboard>
                                </Style.Resources>

                                <Setter Property="Visibility" Value="Hidden" />
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding NodeFlash}" Value="True">
                                        <Setter Property="Visibility" Value="Visible" />
                                        <DataTrigger.EnterActions>
                                            <BeginStoryboard Name="flash" Storyboard="{StaticResource flashAnimation}" />
                                        </DataTrigger.EnterActions>
                                        <DataTrigger.ExitActions>
                                            <StopStoryboard BeginStoryboardName="flash"/>
                                        </DataTrigger.ExitActions>
                                    </DataTrigger>

                                </Style.Triggers>
                            </Style>
                        </Label.Style>
                    </Label>

                </Grid>
                </DataTemplate>
            </ItemsControl.ItemTemplate>

    </ItemsControl>

</Grid>

Thanks again

found it i think? i need to change this:

<Setter Property="Visibility" Value="Hidden" />

to

<Setter Property="Visibility" Value="Visible" />

think it was hiding all non styled labels?

Thanks

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM