65.9K
CodeProject 正在变化。 阅读更多。
Home

.Gif 查看器 / 动画片段

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2015年6月27日

CPOL

1分钟阅读

viewsIcon

19370

downloadIcon

1076

C# .Gif 查看器 / 动画片段控件

引言

我创建了一个简单的 Gif/动画片段工具。它对大多数程序都很有用。

在 Windows 窗体应用程序中加载和动画化 .Gif 图片是很困难的。使用此工具,您只需提供图像 URL 即可显示动画。您还可以选择任何 .Gif 图片来实现您的动画片段。

背景

在编写许多程序后,我发现很多人在查看 Gif 图片时遇到问题,因为 Gif 图片无法在窗体线程中加载。在 C# 中,每个对象都有自己的线程,当我们加载 .gif 图片到项目中时,.gif 图片不会动画化,因此我创建了一个简单的工具来加载窗体中的 .gif 图片。

Using the Code

编码很简单,只需将控制“.dll”添加到您的项目中即可。您需要右键单击工具箱,选择“选择项..”,然后浏览到包含该控件的 DLL,或者转到项目菜单 > 添加引用并浏览到 DLL,然后重建您的项目,然后将控件从工具箱拖放到您的窗体上。

您可以使用属性窗口中的“LoadGIFImage”选择您的图像。

或者使用代码

//
// show image and start moving
//
Spinner.Start();
// invisibale image and stop moving
//
Spinner.Stop();
//property
Spinner.LoadGIFImage = // load gif image

工作原理

在 C# 中,每个对象都有自己的线程,当我们加载 .gif 图片到项目中时,.gif 图片不会动画化。因此,我们使用 BackgroundWorker 为我们的 .gif 图片创建一个新线程。

public Image LoadGIFImage
{
    get { return Loading_pb.Image; }
    set { Loading_pb.Image = value; }

public void Start()
{
    IsStart = true;
    this.Visible = true;
    var worker = new BackgroundWorker();
    worker.DoWork += new DoWorkEventHandler(Loading);
    worker.RunWorkerAsync();
}

public void Stop()
{
    IsStart = false;
    this.Visible = false;
}

void Loading(object sender, DoWorkEventArgs e)
{
    while (IsStart)
    {
        this.Refresh();
    }
}

历史

  • 2015年6月27日 - 初始发布

谢谢

感谢您的阅读,希望您喜欢这个控件。

如果您对该控件进行任何修改/错误修复/增强,请在评论区发布您的源代码片段和/或想法。

© . All rights reserved.