从ViewModel中闪烁图像

Pie*_*rto 0 wpf xaml mvvm viewmodel

我想在用户点击按钮时给用户一些反馈,这会启动一个很长的请求.

我正在使用带有mvvm的WPF,我想开始点击所点击的图像.

这是XAML代码:

<Button Style="{DynamicResource BtnToolBar}" Command="{Binding refreshAll}">
     <Image x:Name="imgUpd" Style="{DynamicResource ImageStyleUpd}" ToolTip="{StaticResource UpdateData}"/>
</Button>
Run Code Online (Sandbox Code Playgroud)

我喜欢这样的东西:

isBlinking="{Binding isBlinking}"
Run Code Online (Sandbox Code Playgroud)

它存在吗?如何从ViewModel中制作闪烁的图像?可能吗?

编辑:我用我找到的解决方案写了这个.

VMa*_*eev 5

您可以使用viewmodel开始闪烁.要做你想做的事,你需要:

  • 将新的DataTrigger添加到ImageStyleUpd样式
  • 使用"True"值将其绑定到isBlinking属性
  • 在触发器中,您可以根据需要为图像设置动画(例如,更改图像的不透明度)

<Style x:Key="ImageStyleUpd" TargetType="{x:Type Image}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding IsBlinking}" Value="True">
            <DataTrigger.EnterActions>
                <BeginStoryboard x:Name="blinking">
                    <Storyboard RepeatBehavior="Forever">
                        <DoubleAnimation Storyboard.TargetProperty="Opacity" AutoReverse="True"
                                         To="0.5" Duration="0:0:0.5">
                        </DoubleAnimation>
                    </Storyboard>
                </BeginStoryboard>
            </DataTrigger.EnterActions>
            <DataTrigger.ExitActions>
                <StopStoryboard BeginStoryboardName="blinking"/>
            </DataTrigger.ExitActions>
        </DataTrigger>
    </Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.