Avalonia常用小控件Svg

news2025/2/23 17:32:56

1.项目下载地址:https://gitee.com/confusedkitten/avalonia-demo

2.UI库Semi.Avalonia,项目地址  https://github.com/irihitech/Semi.Avalonia

3.SVG库,Avalonia.Svg.Skia,项目地址 https://github.com/wieslawsoltes/Svg.Skia

4.样式预览:

 5.Svg.axaml

<UserControl xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
             x:Class="AvaloniaDemo.Pages.Svg">
	<StackPanel Orientation="Horizontal" VerticalAlignment="Top">
		<StackPanel Height="100" Width="100" Margin="20 0 20 0" >
			<TextBlock Text="这是一个png"/>
			<Image Source="../Assets/Images/JiaHao.png" Height="25" Width="25"/>
		</StackPanel>

		<StackPanel Height="100" Width="100" Margin="20 0 20 0" >
			<TextBlock Text="这是一个svg"/>
			<Svg Path="/Assets/Images/__tiger.svg" Stretch="Uniform" />
		</StackPanel>

		<StackPanel Height="100" Width="120" Margin="20 0 20 0"  IsVisible="True">
			<TextBlock Text="后台代码设置的svg"/>
			<Image x:Name="ShowImage" VerticalAlignment="Center"  HorizontalAlignment="Center" Height="100" Width="100" Stretch="Uniform"/>
		</StackPanel>
	</StackPanel>
</UserControl>

  6.Svg.axaml.cs

using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Svg.Skia;
using System.IO;
using System;
using Avalonia.Interactivity;
using Avalonia.Controls.Shapes;

namespace AvaloniaDemo.Pages;

public partial class Svg : UserControl
{
    public Svg()
    {
        InitializeComponent();
        Loaded += WindowLoaded;
    }

    private void WindowLoaded(object? sender, RoutedEventArgs e)
    {
        string baseurl = Directory.GetCurrentDirectory();
        var imagepath = System.IO.Path.Combine(baseurl, @"Assets\Images\new 4.svg");
        var ImageByte = File.ReadAllBytes(imagepath);
        var svgSource = ByteArrayToDrawingImage(ImageByte);
        ShowImage.Source = svgSource;
    }

    public SvgImage? ByteArrayToDrawingImage(Byte[] byteArray)
    {
        if (byteArray == null || byteArray?.Length == 0) return default;
        using (MemoryStream documentStream = new MemoryStream(byteArray))
        {
            try
            {
                var svg = new SvgSource();
                var picture = svg.Load(documentStream);
                if (picture is { })
                {
                    var svgImage = new Avalonia.Svg.Skia.SvgImage() { Source = svg };
                    return svgImage;
                }
            }
            catch (Exception ex)
            {

            }
        }
        return default;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1088254.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

淘宝店铺商品评论数据采集,淘宝商品评论数据接口,淘宝API接口

采集淘宝店铺商品评论数据的方法如下&#xff1a; 进入主界面&#xff0c;选择"自定义任务"。将商品信息页的网址复制粘贴到网站输入框中&#xff0c;点击"保存设置"。将页面下拉到底部&#xff0c;点击"下一页"按钮&#xff0c;在右侧的操作提…

IDEA 中SpringBoot对Run/Debug Configurations配置 SpringBoot的多环境参数指定

例如下面中有多种环境&#xff1a;dev、test、prod 等配置参数&#xff0c;运行服务时候指定其中一种 VM options:内部配置参数 -Dspring.config.namebootstrap -Dspring.spring.profilesdev # 也可以指定端口 -Dserver.port8080 -Dspring.profiles.activetest -Ddebug 参考链…

校招C#面试题整理—Unity客户端

前言 博客已经1年多没有更新了&#xff0c;这一年主要在实习并准备秋招和春招&#xff0c;目前已经上岸Unity客户端岗位&#xff0c;现将去年校招遇到的一些面试题的事后整理分享出来。答案是笔者自己整理的不一定保证准确&#xff0c;欢迎大家在评论区指出。 Unity客户端岗的…

【小巧玲珑】文件太大,怎么办?分卷压缩技术了解下,这才是压缩技术

【小巧玲珑】文件太大&#xff0c;怎么办&#xff1f;分卷压缩技术了解下&#xff0c;这才是压缩技术 1、痛点2、场景重现2.1 jar包2.1 ZIP压缩 3、压缩步骤3.1 新建压缩文件3.2 压缩结果 4、解压步骤5、效果6、jar压缩算法 1、痛点 通过浏览器客户端访问云服务&#xff0c;文…

【VR】【Unity】白马VR课堂系列-VR开发核心基础03-项目准备-VR项目设置

【内容】 详细说明 在设置Camera Rig前,我们需要针对VR游戏做一些特别的Project设置。 点击Edit菜单,Project Settings,选中最下方的XR Plugin Management,在右边面板点击Install。 安装完成后,我们需要选中相应安卓平台下的Pico VR套件,关于怎么安装PICO VR插件,请参…

硬盘格式化怎么选?NTFS/FAT32/exFAT

我们在初次使用硬盘时需要进行格式化&#xff0c;很多移动硬盘和U盘在使用时也有格式化的需求&#xff0c;不过在格式化的时候会面临3个选项&#xff0c;分别是FAT32、NTFS和exFAT&#xff0c;他们到底有什么区别&#xff0c;我们应该如何选呢&#xff1f; 首先简单介绍一下文件…

顶灯控制器OHC

OHC(Over Head Console)顶部控制终端系统&#xff0c;主要实现对车内饰灯以及天窗的控制功能。OHC产品采用平台化设计&#xff0c;并已通过多家整车厂的设计评审和试验验证&#xff0c;为特斯拉、福特、林肯、捷豹、路虎若干车型配套。 产品应用 车内照明灯控制天窗控制后排照…

网站的常见攻击与防护方法

在互联网时代&#xff0c;几乎每个网站都存在着潜在的安全威胁。这些威胁可能来自人为失误&#xff0c;也可能源自网络犯罪团伙所发起的复杂攻击。无论攻击的本质如何&#xff0c;网络攻击者的主要动机通常是谋求经济利益。这意味着无论您经营的是电子商务项目还是小型商业网站…

mongoDB 性能优化

文章目录 前言mongoDB 性能优化1. explain方法来查看查询的执行计划2. 查看mongoDB 集合的索引3. mongoDB 怎么添加索引4. 升序索引与降序索引是什么意思 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易…

Linux - make命令 和 makefile

make命令和 makefile 如果之前用过 vim 的话&#xff0c;应该会对 vim 又爱又恨吧&#xff0c;刚开始使用感觉非常的别扭&#xff0c;因为这种编写代码的方式&#xff0c;和在 windows 当中用图形化界面的方式编写代码的方式差别是不是很大。当你把vim 用熟悉的之后&#xff0…

专业韩语论文翻译,论文中译韩哪里比较专业?

据了解&#xff0c;论文翻译是翻译工作中较常见的一种翻译题材&#xff0c;论文翻译的主要目的是在国外期刊上发表&#xff0c;加强国际学术交流。那么&#xff0c;如何做好论文翻译&#xff0c;论文中译韩哪里比较专业&#xff1f; 业内人士指出&#xff0c;翻译韩语论文&…

pycharm2020无法打开,点击无反应

pycharm 2020 无法打开&#xff0c;点击无反应&#xff0c;今天我碰到这现象&#xff0c;总结大体原因 C:\Users\ygw\AppData\Roaming\JetBrains &#xff08;删除该目录即可&#xff0c;一般由于升级安装 或 安装两个不同版本 会存在老旧文件影响导致&#xff09;

了解什么是JWT的原理及实际应用

目录 一、介绍&讲述 ( 1 ) 什么是JWT ( 2 ) 为什么要学 二、结构 三、Jwt的工具类的使用 1. 依赖 2. 工具类 3. 过滤器 4. 控制器 5. 配置 6. 测试类 用于生成JWT 解析Jwt 复制jwt&#xff0c;并延时30分钟 测试JWT的有效时间 测试过期JWT的解析 四、…

智能制造优化,RFID生产线管理系统解决方案

一、背景介绍 随着全球经济的发展&#xff0c;传统制造业面临着越来越高的成本和低利润的挑战&#xff0c;为了提升企业的整体利润率&#xff0c;优化管理流程成为必要的手段之一&#xff0c;在传统的制造企业中&#xff0c;生产线通常采用单件流生产模式&#xff0c;但这种模…

成立 15 年的美图分享,AI 视觉大模型的核心能力是什么?

出品 | CSDN 云计算 国民级美颜修图软件美图秀秀&#xff0c;从移动互联网时代火到现在&#xff0c;而它背后的美图公司也走过了十五年的发展&#xff0c;旗下拥有众多的专业影像与设计产品。最近&#xff0c;美图公司举办 15 周年生日会&#xff0c;生日会上美图还发布了自研 …

深度学习基础知识数据 数据预处理transforms流程讲解

深度学习基础知识数据 数据预处理transforms流程讲解 1、数据预处理2、使用节点2、transform.RandomResizedCrop 随机尺寸裁剪缩放3、水平翻转 与 垂直翻转4、ColorJitter变换5、ToTensor6、Normalization 归一化7、transforms.Compose8、重写transforms1、分类任务2、目标检测…

“Jwt认证在前后端分离架构中的应用与优化“

目录 引言1. JWT的简介1.1 什么是JWT1.2 JWT的优势 2. JWT工具类2.1 JWT生成与解析2.2 JWT与安全性 3. JWT案例演示后台改动前台改动 总结 引言 在当今互联网应用开发中&#xff0c;前后端分离架构已经成为一种主流的开发模式。而身份验证和授权是保证系统安全性的重要环节之一…

Unity 快捷键的一些记录

1.Unity Prefab Apply All 设置快捷键&#xff0c;修改预设体之后快捷键应用 打包会出问题&#xff1a;The type or namespace name ‘EditorWindow‘ could not be found EditorWindow类无法打包出EXE 添加unity关键字定义如下文所示&#xff1a; #if UNITY_EDITOR using Uni…

「五度情报站」网罗全量企业情报,找客户、查竞品、寻商机!

在当下严峻的市场经济环境下&#xff0c;准确、及时的情报信息&#xff0c;就如同指引企业前行的明灯&#xff0c;能够让企业在风起云涌的市场大潮中保持敏锐的洞察力&#xff0c;掌握最新的市场动态&#xff0c;洞悉竞争对手的一举一动&#xff0c;先知先动&#xff0c;保持竞…

多域名SSL数字证书是什么呢

多域名SSL数字证书是众多SSL数字证书中最灵活的一款SSL证书产品。一般一张SSL证书只能保护一个域名&#xff0c;即使能保护多个域名站点&#xff0c;证书保护的域名类型也有限制(通配符SSL数字证书)。多域名SSL数字证书既能用一张SSL证书保护多个域名网站&#xff0c;又不限制域…