C# WPF中图像控制中的多图像切换

C# WPF中图像控制中的多图像切换,c#,wpf,image,wpf-controls,custom-controls,C#,Wpf,Image,Wpf Controls,Custom Controls,我试图在WPF中创建一个自定义图像控件,它将有3种状态 单一静态图像 加载程序动画 多图像动画和鼠标悬停效果 此控件将显示一个图像,但在鼠标上方它将检查是否有多个图像或单个图像。因此将有两个鼠标悬停案例 单幅图像=>什么都没有发生 多个图像=>它将开始在源中的所有图像中设置动画 我们可以用触发器在鼠标上改变图像,但如果 在单幅图像的情况下,我们没有鼠标悬停在图像上 在多个图像的情况下,我们有多个图像 我所取得的成就是基本的东西,我以前没有放在这里 <Style TargetType="{x

我试图在WPF中创建一个自定义图像控件,它将有3种状态

  • 单一静态图像
  • 加载程序动画
  • 多图像动画和鼠标悬停效果
  • 此控件将显示一个图像,但在鼠标上方它将检查是否有多个图像或单个图像。因此将有两个鼠标悬停案例

  • 单幅图像=>什么都没有发生
  • 多个图像=>它将开始在源中的所有图像中设置动画
  • 我们可以用触发器在鼠标上改变图像,但如果

  • 在单幅图像的情况下,我们没有鼠标悬停在图像上
  • 在多个图像的情况下,我们有多个图像
  • 我所取得的成就是基本的东西,我以前没有放在这里

    <Style TargetType="{x:Type Image}">            
        <Setter Property="Source" Value="Resources\2.png" />
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <!-- Hover image -->
                <Setter Property="Cursor" Value="Hand"/>
                <Setter Property="Source" Value="Resources\3.png"/>
            </Trigger>
        </Style.Triggers>
    </Style>
    
    
    

    现在可能需要做的是添加dynanic源,但我感到困惑的是,如何添加条件触发器并根据源具有不同的行为。

    对于任何感兴趣的人,我通过创建BitmapImage列表并将所有图像添加到列表中来实现这一点。然后我覆盖OnMouseEnter和onmouseeve

    如果列表中有多个图像,我会启动一个计时器。在计时器运行后,我用列表中的下一个图像更新了图像源

    当OnMouseLeave事件发生时,我将图像源重置为列表的零索引。这是主要的图像

    我使用INotifyPropertyChanged将图像源与属性绑定