gpt4 book ai didi

c# - WpfAnimatedGif 不要停留在特定的框架中

转载 作者:太空宇宙 更新时间:2023-11-03 22:56:50 29 4
gpt4 key购买 nike

我正在尝试使用 WpfAnimatedGif 使动画从特定帧开始

具体帧数是13 gif有30帧

(当动画播放时,我希望它从头开始播放,然后返回到第 13 帧)

第 13 帧像缩略图一样,当我悬停 gif 时,gif 开始播放,之后,它返回到第 13 帧并像缩略图一样

( Their Git Page , Their documentation page )

XAML:

<Image Name="MinimizeGIF" gif:ImageBehavior.AutoStart="False" gif:ImageBehavior.RepeatBehavior="3x" gif:ImageBehavior.AnimatedSource="/Media/arrow_bottom1.gif" MouseEnter="MinimizeGIF_MouseEnter" Height="58.262" Margin="460.674,60.801,68.004,0" VerticalAlignment="Top" Width="71.321" MouseDown="MinimizeGIF_MouseDown" MouseLeave="MinimizeGIF_MouseLeave" RenderTransformOrigin="0.5,0.5" Loaded="MinimizeGIF_Loaded">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="180"/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>

C#代码:

private void MinimizeGIF_Loaded(object sender, RoutedEventArgs e)
{
var image = new BitmapImage();
image.BeginInit();
image.UriSource = new Uri(@"C:\Users\Me\Documents\Visual Studio 2017\Projects\Counting\Counting\arrow_bottom1.gif");
image.EndInit();
ImageBehavior.SetAnimatedSource(MinimizeGIF, image);
var controller = ImageBehavior.GetAnimationController(MinimizeGIF);
controller.GotoFrame(13); // It Goes to The Frame
MessageBox.Show(controller.CurrentFrame.ToString()); // Just for the function to stop and after that the gif return to frame 0
}

MessageBox.Show(controller.CurrentFrame.ToString()); 它显示 -1

有人可以帮助我吗?

最佳答案

  1. 在图像中获取你想要的特定帧
  2. 用这张图片创建一个按钮
  3. 悬停按钮时更改 btn1.Visibility = System.Windows.Visibility.Hidden; 并从头开始 gif
  4. 离开按钮时,更改为 btn1.Visibility = System.Windows.Visibility.Visible;

关于c# - WpfAnimatedGif 不要停留在特定的框架中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45014060/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com