C#WPF将gif动画设置为背景

问题描述

我在WPF项目中遇到了XAML的问题,我想将动画gif作为整个程序窗口的背景。

我已经使用了一个名为WpfAnimatedGif的外部库,据我所知,它必须在Image元素内才能工作。我面临的问题是我无法将图像元素设置为窗口的背景。

我可以像这样使用ImageBrush元素将其设置为背景:

<Grid.Background>
    <ImageBrush ImageSource="Resources/animated.gif"/>
</Grid.Background>

解决方案的问题在于gif无法动画,因此它只是静态图像。为了使gif动画,我将其与外部库一起使用,如下所示:

<Border>
    <Image gif:ImageBehavior.AnimatedSource="Resources\animated.gif"
           gif:ImageBehavior.AutoStart="True"
           gif:ImageBehavior.RepeatBehavior="1"/>
</Border>

由于对XAML的了解有限,我不知道如何像第一个示例那样将动画gif设置为很好地适合程序窗口的背景。

有什么简单的解决方法吗?

解决方法

带有图像的VisualBrush可能起作用:

<Grid.Background>
    <VisualBrush>
        <VisualBrush.Visual>
            <Image gif:ImageBehavior.AnimatedSource="Resources\animated.gif"
                   gif:ImageBehavior.AutoStart="True"
                   gif:ImageBehavior.RepeatBehavior="1"/>
        </VisualBrush.Visual>
    </VisualBrush>
</Grid.Background>