gpt4 book ai didi

Avalonia实现动态托盘

转载 作者:我是一只小鸟 更新时间:2023-02-02 14:31:39 26 4
gpt4 key购买 nike

先下载一个gif图片,这里提供一个gif图片示例 。

在线GIF图片帧拆分工具 - UU在线工具 (uutool.cn) 。

使用这个网站将gif切成单张图片 。

创建一个Avalonia MVVM的项目,将图片copy进去 。

在项目文件中添加一下代码:

                        
                              <ItemGroup>
        <None Update="gif\*.png">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>

                        
                      

修改 App.axaml.cs 代码 。

                        
                          public partial class App : Application
{
    private static TrayIcon NotifyIcon;
    
    public override void Initialize()
    {
        AvaloniaXamlLoader.Load(this);
    }

    public override void OnFrameworkInitializationCompleted()
    {
        if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
        {
            desktop.MainWindow = new MainWindow
            {
                DataContext = new MainWindowViewModel(),
            };
        }
        InitializeLogo();

        base.OnFrameworkInitializationCompleted();
    }

    private static void InitializeLogo()
    {
        // 初始化Icon
        NotifyIcon = new TrayIcon();

        // 初始图片
        var size = 1;
        _ = Task.Run(async () =>
        {
            while (true)
            {
                // 添加托盘图标,
                await Dispatcher.UIThread.InvokeAsync(() =>
                {
                    using var stream =
                        File.OpenRead(Path.Combine(AppContext.BaseDirectory, "gif", $"{size++}.png"));
                    // 定义图片的总数,达到总数从1开始继续循环
                    if (size == 151)
                    {
                        size = 1;
                    }

                    return NotifyIcon.Icon =
                        new WindowIcon(stream);
                });
                // 修改动态渲染速度
                await Task.Delay(40);
            }
        });
        NotifyIcon.ToolTipText = "Logo动图测试";
        NotifyIcon.IsVisible = true;
    }
}

                        
                      

执行项目,效果如图 。

简单实现托盘动图,你也可以使用更好的图片,这个动图不太专业可能显示不太好看 。

来着token的分享 。

最后此篇关于Avalonia实现动态托盘的文章就讲到这里了,如果你想了解更多关于Avalonia实现动态托盘的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

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