.NET 帮助

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

发布 2024年四月29日
分享:

介绍

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

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

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

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

Avalonia C&num 入门;

设置开发环境

要开始使用 Avalonia 进行开发,您需要设置开发环境。 您可以使用 Visual Studio 或 JetBrains Rider 作为集成开发环境。首先,安装 Visual Studio 或 JetBrains Rider。 然后,添加Avalonia Visual Studio 扩展到您的集成开发环境。该扩展提供了项目模板和 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>
<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>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<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>
VB   C#

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

样式和控制模板

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

<Window.Styles>
    <Style Selector="Button">
        <Setter Property="Background" Value="#007ACC"/>
        <Setter Property="Foreground" Value="White"/>
    </Style>
</Window.Styles>
<Window.Styles>
    <Style Selector="Button">
        <Setter Property="Background" Value="#007ACC"/>
        <Setter Property="Foreground" Value="White"/>
    </Style>
</Window.Styles>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<Window.Styles> <Style Selector="Button"> <Setter @Property="Background" Value="#007ACC"/> <Setter @Property="Foreground" Value="White"/> </Style> </Window.Styles>
VB   C#

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

使用数据和控件

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

<TextBox Text="{Binding UserName}"/>
<TextBox Text="{Binding UserName}"/>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<TextBox Text="{Binding UserName}"/>
VB   C#

该代码将 TextBoxText 属性绑定到数据上下文中的 UserName 属性。 Avalonia 支持多种不同用途的控件,如 ListBoxDataGridTreeView

将 IronPDF 与 Avalonia UI 集成

IronPDF 简介

Avalonia C#(如何为开发人员工作):图 2

IronPDF 库概述是一个.NET 库,可使处理 PDF 变得轻而易举。 它允许开发人员以编程方式创建、编辑和提取 PDF 内容。 IronPDF 的突出特点之一是它能够转换使用 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 Then
		Me.AttachDevTools()
#End If
		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
VB   C#

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

结论

Avalonia C#(如何为开发人员工作):图 3

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

如果您想与 IronPDF 合并,那么可以尝试 IronPDF 的免费试用选项. IronPDF 的定价从 749 美元起。

< 前一页
Mediatr C#(它对开发人员的作用)
下一步 >
Masstransit C#(开发者如何使用)

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >