legongju.com
我们一直在努力
2025-01-13 17:12 | 星期一

利用C#实现自定义Loading图标

在C#中,你可以使用Windows Forms或WPF来创建一个自定义的Loading图标。这里我将为你提供一个简单的Windows Forms示例。首先,你需要创建一个新的Windows Forms项目。

  1. 打开Visual Studio,创建一个新的Windows Forms应用程序项目(File > New > Project > Windows Forms App (.NET))并命名为"CustomLoadingIcon"。

  2. 在解决方案资源管理器中,双击"Form1.cs"以打开设计器。

  3. 从工具箱中,将一个"PictureBox"控件拖放到表单上。将其位置设置为(100, 100),大小设置为(100, 100)。

  4. 选中"PictureBox"控件,然后在属性窗口中,将"Modifiers"属性设置为"Public"。

  5. 双击表单以打开"Form1.cs"的代码视图。在"Form1"类中添加以下代码:

using System;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace CustomLoadingIcon
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private async void Form1_Load(object sender, EventArgs e)
        {
            await Task.Run(() => StartLoadingAnimation());
        }

        private void StartLoadingAnimation()
        {
            int degree = 0;
            while (true)
            {
                degree = (degree + 10) % 360;
                this.Invoke((Action)(() =>
                {
                    pictureBox1.Image = GenerateRotatedImage("loading.png", degree);
                }));
                System.Threading.Thread.Sleep(50);
            }
        }

        private Image GenerateRotatedImage(string imagePath, int degree)
        {
            Image originalImage = Image.FromFile(imagePath);
            Bitmap rotatedImage = new Bitmap(originalImage.Width, originalImage.Height);
            using (Graphics g = Graphics.FromImage(rotatedImage))
            {
                g.TranslateTransform(originalImage.Width / 2, originalImage.Height / 2);
                g.RotateTransform(degree);
                g.TranslateTransform(-originalImage.Width / 2, -originalImage.Height / 2);
                g.DrawImage(originalImage, new Point(0, 0));
            }
            return rotatedImage;
        }
    }
}
  1. 将一个名为"loading.png"的图像文件添加到项目中(右键项目 > Add > Existing Item)。确保将其复制到输出目录(在属性窗口中,将"Copy to Output Directory"设置为"Copy always")。

  2. 运行项目,你将看到一个旋转的Loading图标。

这个示例中,我们创建了一个PictureBox控件,并在表单加载时启动了一个异步任务来旋转图像。GenerateRotatedImage函数根据给定的角度生成一个旋转后的图像。你可以根据需要修改这个示例,例如更改图像文件、旋转速度等。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/106886.html

相关推荐

  • C# CopyFromScreen的注意事项

    C# CopyFromScreen的注意事项

    CopyFromScreen 是 C# 中 Graphics 类的一个方法,用于从屏幕上复制一个矩形区域到一个位图(Bitmap)对象 性能考虑:CopyFromScreen 方法可能会消耗大量的系统资...

  • C#中如何高效地进行屏幕拷贝

    C#中如何高效地进行屏幕拷贝

    在C#中,要高效地进行屏幕拷贝,可以使用Graphics类的CopyFromScreen方法
    using System;
    using System.Drawing;
    using System.Windows.Forms; na...

  • C#实现屏幕拷贝的代码示例

    C#实现屏幕拷贝的代码示例

    在C#中,可以使用Graphics类和Bitmap类来实现屏幕截图
    using System;
    using System.Drawing;
    using System.Windows.Forms; namespace ScreenCapt...

  • 利用C# CopyFromScreen截图的方法

    利用C# CopyFromScreen截图的方法

    在C#中,可以使用Graphics.CopyFromScreen方法来截取屏幕上的一部分区域
    using System;
    using System.Drawing;
    using System.Windows.Forms; nam...

  • C#中Loading状态的切换逻辑

    C#中Loading状态的切换逻辑

    在C#中,实现Loading状态的切换逻辑通常涉及到以下几个步骤: 定义一个变量或属性来表示当前的加载状态。例如,可以使用一个布尔值(bool)类型的变量,如isLoad...

  • 如何优化C# Loading的加载速度

    如何优化C# Loading的加载速度

    要优化C# Loading(假设您指的是在Unity中加载资源)的加载速度,可以采取以下策略: 使用AssetBundle:将资源打包成AssetBundle,这样可以更高效地加载和管理资...

  • C# Loading动画的设计技巧

    C# Loading动画的设计技巧

    在C#中,创建一个加载动画可以通过多种方法实现。以下是一些建议和技巧,可以帮助您设计一个流畅且吸引人的加载动画: 选择合适的控件:根据您的需求选择合适的控...

  • C#中如何实现优雅的Loading效果

    C#中如何实现优雅的Loading效果

    在C#中,实现优雅的加载效果通常需要使用多线程和异步编程。这里有一个简单的示例,展示了如何在Windows Forms应用程序中实现一个优雅的加载效果: 首先,确保你...