.NET 帮助

Avalonia C#(开发人员如何使用)

Chipego
奇佩戈-卡琳达
2024年四月29日
分享:

介绍

Avalonia C# 是一个跨平台的UI框架,为开发者提供了统一的项目和控制模板,用于创建可在多个平台上顺畅运行的应用程序。 它允许开发人员创建可在 Windows、Linux、macOS 等操作系统上运行的应用程序。 因此,对于那些希望开发出能覆盖广泛受众的应用程序的人来说,这是一个非常有价值的工具。

有了 Avalonia,创建跨平台桌面应用程序变得更加简单。 该框架支持多种平台。 该兼容性功能可扩展现有 WPF 应用程序的跨平台使用范围,而无需进行昂贵且有风险的重写,从而增强了现有 WPF 应用程序的功能。

IronPDF Features 是一个库,可以让开发人员在 .NET 应用程序中生成 PDF。 在与 Avalonia 集成后,可以创建能够将视图或数据导出到 PDF 的应用程序。 这将为您的跨平台应用程序增加宝贵的功能。

通过将 Avalonia 与 IronPDF 结合使用,开发人员拥有了一套强大的工具。 这些工具可用于开发复杂的应用程序。 这些应用程序可以有丰富的用户界面,并能生成 PDF 文档。

Avalonia C&num 入门;

设置开发环境

要开始使用 Avalonia 进行开发,您需要设置开发环境。 您可以使用 Visual Studio 或 JetBrains Rider 作为集成开发环境。首先,安装 Visual Studio 或 JetBrains Rider。 然后,将 Avalonia Visual Studio Extension 添加到您的IDE中。此扩展提供项目模板和XAML预览器。 它能增强您的开发体验。

对于那些从跨平台 WPF 项目过渡过来的人,Avalonia C# 提供了一个熟悉的开发流程,并可访问由 .NET 基金会支持的外部链接和资源。

您的第一个 Avalonia 应用程序

创建第一个 Avalonia 应用程序非常简单。 打开您的集成开发环境并选择 Avalonia 项目模板。 这将使用 Avalonia 的默认设置创建一个新项目。该项目包括一个主窗口和一个基本配置。 运行该项目,查看您的第一个 Avalonia 应用程序的运行情况。 您现在已经开始了使用 Avalonia C# 的旅程。

Avalonia C#(对开发者的工作原理):图1

探索 Avalonia UI 功能

了解 Avalonia UI 和 XAML

Avalonia UI 使用 XAML 进行用户界面设计。 XAML 是一种定义用户界面元素的标记语言。 下面是 Avalonia 应用程序中 XAML 的一个简单示例:

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Avalonia Example">
    <TextBlock Text="Hello, Avalonia!" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Window>
XML

这段代码会创建一个窗口,窗口中央有一个文本块。 文本块显示“Hello, Avalonia!”。 XAML 可让您轻松设计和调整用户界面。

样式和控制模板

Avalonia 通过提供灵活的样式系统和支持大量设计需求而脱颖而出。 该系统允许您定义应用程序的外观和感觉。 您可以自定义控制模板,以获得一致的设计。 以下是为按钮定义简单样式的方法:

<Window.Styles>
    <Style Selector="Button">
        <Setter Property="Background" Value="#007ACC"/>
        <Setter Property="Foreground" Value="White"/>
    </Style>
</Window.Styles>
XML

该样式可更改窗口中所有按钮的背景和文本颜色。 Avalonia 的样式系统支持复杂的场景,包括主题和动画。

使用数据和控件

Avalonia 中的数据绑定可以将用户界面与数据源连接起来。 下面是一个数据绑定的基本示例:

<TextBox Text="{Binding UserName}"/>
XML

此代码将Text属性绑定到数据上下文中的UserName属性。 Avalonia 支持用于不同目的的多种控件,例如 ListBoxDataGridTreeView

将 IronPDF 与 Avalonia UI 集成

IronPDF 简介

Avalonia C#(对开发人员的运作方式):图2

IronPDF 库概述 是一个使 PDF 处理变得轻松的 .NET 库。 它允许开发人员以编程方式创建、编辑和提取 PDF 内容。 IronPDF的突出功能之一是它能够将HTML转换为PDF,这使其在生成报告、发票或任何可以呈现为网页的文档时非常有用。

使用案例:将 IronPdf 与 Avalonia C&num 合并;

想象一下,您正在使用 Avalonia 构建一个桌面应用程序,需要将发票生成 PDF 格式。 您的应用程序有一个设计精美的 HTML 格式发票模板,您希望动态填写详细信息并将其保存为 PDF 格式。 这就是 IronPDF 发挥作用的地方。 通过集成 IronPDF,您可以呈现填入数据的 HTML 发票模板,并直接从 Avalonia 应用程序中保存。

代码示例:生成 PDF 发票

下面是一个综合示例,展示了如何实现这一功能。 我们将创建一个带有按钮的简单 Avalonia 窗口。 单击时,该按钮将从 HTML 字符串(将用作我们的发票模板)生成 PDF 并将其保存到您的计算机中。

首先,确保您已经在项目中安装了 IronPDF 和 Avalonia 软件包。 如果没有,可以通过 NuGet 添加。

现在,让我们开始编码:

using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using IronPdf;
public class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        // #if DEBUG
        this.AttachDevTools();
        // #endif
        this.FindControl<Button>("GeneratePdfButton").Click += OnGeneratePdfButtonClick;
    }
    private void InitializeComponent()
    {
        AvaloniaXamlLoader.Load(this);
    }
    private void OnGeneratePdfButtonClick(object sender, RoutedEventArgs e)
    {
        var Renderer = new ChromePdfRenderer();
        var PDF = Renderer.RenderHtmlAsPdf("<html><body><h1>Invoice</h1><p>This is a simple invoice.</p></body></html>");
        // Save the PDF to a file
        PDF.SaveAs("Invoice.pdf");
        // Optionally, you could show a message box or some notification to the user that the PDF has been generated.
        MessageBox.Show(this, "Invoice PDF generated successfully.", "Success");
    }
}
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using IronPdf;
public class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        // #if DEBUG
        this.AttachDevTools();
        // #endif
        this.FindControl<Button>("GeneratePdfButton").Click += OnGeneratePdfButtonClick;
    }
    private void InitializeComponent()
    {
        AvaloniaXamlLoader.Load(this);
    }
    private void OnGeneratePdfButtonClick(object sender, RoutedEventArgs e)
    {
        var Renderer = new ChromePdfRenderer();
        var PDF = Renderer.RenderHtmlAsPdf("<html><body><h1>Invoice</h1><p>This is a simple invoice.</p></body></html>");
        // Save the PDF to a file
        PDF.SaveAs("Invoice.pdf");
        // Optionally, you could show a message box or some notification to the user that the PDF has been generated.
        MessageBox.Show(this, "Invoice PDF generated successfully.", "Success");
    }
}
Imports Avalonia
Imports Avalonia.Controls
Imports Avalonia.Interactivity
Imports Avalonia.Markup.Xaml
Imports IronPdf
Public Class MainWindow
	Inherits Window

	Public Sub New()
		InitializeComponent()
		' #if DEBUG
		Me.AttachDevTools()
		' #endif
		AddHandler FindControl(Of Button)("GeneratePdfButton").Click, AddressOf OnGeneratePdfButtonClick
	End Sub
	Private Sub InitializeComponent()
		AvaloniaXamlLoader.Load(Me)
	End Sub
	Private Sub OnGeneratePdfButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
		Dim Renderer = New ChromePdfRenderer()
		Dim PDF = Renderer.RenderHtmlAsPdf("<html><body><h1>Invoice</h1><p>This is a simple invoice.</p></body></html>")
		' Save the PDF to a file
		PDF.SaveAs("Invoice.pdf")
		' Optionally, you could show a message box or some notification to the user that the PDF has been generated.
		MessageBox.Show(Me, "Invoice PDF generated successfully.", "Success")
	End Sub
End Class
$vbLabelText   $csharpLabel

此代码为我们应用程序的主窗口定义了一个MainWindow类。 MainWindow构造函数初始化窗口,并为按钮的Click事件设置事件处理程序。 OnGeneratePdfButtonClick 方法通过使用 IronPDF 的 HTMLToPdf 类来处理点击事件,将 HTML 渲染为 PDF 文档并保存。

结论

Avalonia C#(对开发人员的工作原理):图3

对于渴望在不牺牲用户界面质量或性能的情况下将其应用程序扩展到多个平台的开发人员来说,Avalonia 是一个极具吸引力的解决方案。 从访问 Avalonia 文档开始,加入社区,探索这个强大的 UI 框架如何提升您的 C# 开发项目。

如果您想将其与IronPDF合并,那么您可以尝试IronPDF的免费试用选项。 IronPDF 的定价从 $749 开始。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
Mediatr C#(它对开发人员的作用)
下一步 >
Masstransit C#(开发者如何使用)