















| 项目 | 要求 |
|---|---|
| .NET SDK | .Net6.0或更高版本 |
| Avalonia UI | 11.1x或11.2.x (不支持11.2.0) |
| 开发工具 | Visual Studio 2022,Rider或支持Avalonia 的IDE |
install-package Irihi.Ursa
install-package Semi.Avalonia
install-package Irihi.Ursa.Themes.Semi
或通过命令安装
dotnet add package Semi.Avalonia
dotnet add package Irihi.Srsa.Thems.Semi
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="AvaloniaUrsaDemo.App"
xmlns:semi="https://irihi.tech/semi"
xmlns:u-semi="https://irihi.tech/ursa/themes/semi"
RequestedThemeVariant="Default">
<!-- "Default" ThemeVariant follows system theme variant. "Dark" or "Light" are other available options. -->
<Application.Styles>
<FluentTheme />
<!--添加Semi基础主题和Ursa的Semi主题-->
<semi:SemiTheme Locale="zh-CN" />
<u-semi:SemiTheme Locale="zh-CN" />
</Application.Styles>
</Application>
安装完成后,就可以在xaml中使用Ursa控件了
1.引入命名控件: 在窗口或用户控件的axaml头部添加命名空间
<Window 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"
xmlns:u="https://irihi.tech/ursa"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="AvaloniaUrsaDemo.MainWindow"
Title="Ursa 框架应用">
<Grid RowDefinitions="*,*,*,*" ShowGridLines="True">
<StackPanel Orientation="Horizontal">
<u:DatePicker Width="120" DisplayFormat="yyyy-MM-dd HH:mm:ss"
Watermark="请选择时间" Height="40" VerticalAlignment="Center"/>
</StackPanel>
</Grid>
</Window>
| 类别 | 包含空间的示例 |
|---|---|
| 导航 | NavMenu(导航菜单)、Breadcrumb(面包屑)、Pagination(分页) |
| 数据录入 | Form(表单)、AutoCompleteBox(自动完成)、TagInput(标签输入) |
| 反馈 | Loading(加载中)、Notification(通知)、MessageBox(消息框) |
| 数据展示 | Descriptions(描述列表)、TimeLine(时间线)、Skeleton(骨架屏) |
| 布局 | AspectRatioLayout(宽高比布局)、ElasticWrapPanel(弹性换行面板) |
<Window 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"
xmlns:u="https://irihi.tech/ursa"
xmlns:semi="https://irihi.tech/ursa/themes/semi"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="AvaloniaUrsaDemo.MainWindow"
Title="Ursa 框架应用">
<Window.Styles>
<Style Selector="Button">
<Setter Property="Margin" Value="10 5" />
<Setter Property="Background" Value="SkyBlue" />
<Setter Property="Foreground" Value="White" />
<Setter Property="CornerRadius" Value="7" />
</Style>
</Window.Styles>
<Grid RowDefinitions="50,2*,*,Auto" ShowGridLines="True">
<StackPanel Orientation="Horizontal">
<Button Click="Button_Click" Content="MessageBox 消息框" Height="30" Width="180"/>
<u:Breadcrumb Separator="|">
<u:BreadcrumbItem>
主页
</u:BreadcrumbItem>
<u:BreadcrumbItem>
产品介绍
</u:BreadcrumbItem>
<u:BreadcrumbItem>
联系我们
</u:BreadcrumbItem>
</u:Breadcrumb>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="1">
<u:NavMenu IsHorizontalCollapsed="False" >
<u:NavMenu.Items>
<MenuItem Header="文件" Click="Menu_Click"/>
<MenuItem Header="打开" Click="Menu_Click" />
<MenuItem Header="编辑" Click="Menu_Click" />
</u:NavMenu.Items>
</u:NavMenu>
<u:FormGroup>
<u:Form Height="300" Width="200">
<Border BorderBrush="Blue" BorderThickness="1" Background="AliceBlue">
<TextBlock Text="Form1" />
</Border>
</u:Form>
<u:Form>
<u:Form.Items>
<u:FormItem>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<Button Width="120" Height="40" Content="Btn1"/>
</StackPanel>
</StackPanel>
</u:FormItem>
</u:Form.Items>
</u:Form>
</u:FormGroup>
<u:AutoCompleteBox Height="40" Width="120"/>
<u:Loading Width="40" Height="40" IsLoading="True" Margin="10 0"/>
<Button Content="Notice" Height="40" Width="80" Click="BtnNotice_Click" />
<u:Timeline>
<u:Timeline.Items>
<u:TimelineItem Header="第一步" Content="自阀手柄运转位" Time="14:30:00" />
<u:TimelineItem Header="第二步" Content="自阀手柄紧急位" Time="14:32:00" />
</u:Timeline.Items>
</u:Timeline>
</StackPanel>
<u:Pagination Grid.Row="4" PageSize="10" />
</Grid>
</Window>
using Avalonia.Controls;
using System.Threading.Tasks;
using Ursa.Controls;
using Avalonia.Interactivity;
namespace AvaloniaUrsaDemo
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{
await MessageBox.ShowAsync("你好","提示",MessageBoxIcon.Information,MessageBoxButton.OK);
}
private async void Menu_Click(object? sender, RoutedEventArgs e)
{
if (e.Source is MenuItem)
{
MenuItem item = (MenuItem)e.Source;
await MessageBox.ShowAsync(item.Header.ToString(),"提示",MessageBoxIcon.Information,MessageBoxButton.OK);
}
}
}
}

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。