当前位置: 首页 > news >正文

Avalonia常用小控件Svg

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.lryc.cn/news/190871.html

相关文章:

  • 设计模式-行为型模式
  • 【EventLoop】问题一次搞定
  • Unity中Shader光照模型Phong
  • 消息队列缓存,以蓝牙消息服务为例
  • MSF派生给另外MSF,meterpreter派生给另外meterpreter,Metasploit
  • 【LeetCode】1.两数之和
  • 3. Windows下C++/MFC调用hiredis库操作redis示例
  • 200、使用默认 Exchange 实现 P2P 消息 之 消息生产者(发送消息) 和 消息消费者(消费消息)
  • SqlServer--get 和 post 请求 http接口
  • 利用人工智能提升企业培训的个性化体验
  • 基于JavaWeb的图书售卖网站(源码+部署+LW)
  • Java设计模式之代理模式
  • Oracle数据泵导入和导出命令
  • Linux中所有环境变量配置文件及用途
  • 一文读懂flutter线程: 深入了解Flutter中的多线程编程
  • 如何限制word文件中部分内容无法编辑
  • 免疫球蛋白介绍
  • VMWare 安装CentOS7镜像
  • 什么台灯最好学生晚上用?开学适合孩子学习的台灯
  • 6.1 C/C++ 封装字符串操作
  • 小白网络安全学习手册
  • 思科拟推出PuzzleFS驱动,采用Rust语言开发
  • 为什么要学习python
  • 相机噪声评估
  • CRM系统:快速实现外勤出差人员远程访问企业提升工作效率!
  • 028.Python面向对象_类补充_元类
  • cocos2d-x Android原生平台与Lua交互
  • 17个开源的Go语言博客和CMS解决方案
  • Jenkins 执行远程shell脚本部署jar文件问题起不来
  • CTF网络安全题目个人导航【持续更新】