在PropertyChanged上更改视觉状态

时间:2015-11-05 16:58:12

标签: wpf expression-blend

是否可以在Blend中添加行为以切换到不同的可视状态以响应绑定中的属性更改事件?它需要切换到这种状态几秒钟然后退出。

每次datacoontext上的计数值发生变化时,我都会尝试更改控件的背景颜色。我已经尝试过使用GoToStateAction和EventTrigger / DataTrigger但是无法完全触发设置 - 我怀疑我需要以不同的方式处理它,但我不确定如何。 任何帮助将不胜感激 -

这是边框的xaml - 我坚持如何设置触发器以更改视觉状态 - 我希望每次在viewmodel上切换到BrightState几秒钟并返回到NormalState变化

<Border x:Name="border" Grid.Row="2" Background="CadetBlue">
        <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
            <TextBlock><Run Text="Count:"/></TextBlock>
            <TextBlock x:Name="textBlock" Text="{Binding Count}" MinWidth="30">
                <i:Interaction.Triggers>
                    <!--<i:EventTrigger EventName="MouseLeftButtonDown" SourceName="textBlock">
                        <ei:GoToStateAction/>
                    </i:EventTrigger>-->
                </i:Interaction.Triggers>
            </TextBlock>
        </StackPanel>
    </Border>

以下是为更改边框背景颜色而定义的视觉状态:

<VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="FlickerStateGroup">
            <VisualState x:Name="NormalState"/>
            <VisualState x:Name="BrightState">
                <Storyboard>
                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="border">
                        <EasingColorKeyFrame KeyTime="0" Value="#FF6CD9DC"/>
                    </ColorAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

0 个答案:

没有答案