跳過到頁腳內容
.NET幫助

Avalonia C#(對於開發者的運行原理)

Avalonia C# 是一個跨平台的 UI 框架,為開發人員提供統一的專案和控制範本,用於創建能在多個平台上順利運行的應用程式。 它允許開發人員創建能在 Windows、Linux、macOS 和更多平台上運行的應用程式。 這使得它成為那些希望開發能夠接觸廣泛受眾的應用程式的人的珍貴工具。

使用 Avalonia,創建跨平台桌面應用程式變得更加簡單。 該框架支持多種平台。 這一兼容特性可以擴展現有的 WPF 應用程式的影響範圍,無需昂貴且高風險的重寫。

IronPDF 功能 是一個讓開發人員能在 .NET 應用程式中生成 PDF 的庫。 當與 Avalonia 集成時,它能夠創建可以將視圖或數據導出為 PDF 的應用程式。 這為您的跨平台應用程式增加了寶貴的功能。

通過結合 Avalonia 和 IronPDF,開發人員擁有了一組強大的工具。 這些工具允許開發複雜的應用程式。 這些應用程式可以擁有豐富的用戶界面和生成 PDF 文件的能力。

開始使用 Avalonia C#

設置您的開發環境

要開始使用 Avalonia 開發,您需要設置您的開發環境。 您可以使用 Visual Studio 或 JetBrains Rider 作為您的 IDE。 首先,安裝 Visual Studio 或 JetBrains Rider。 然後,將 Avalonia Visual Studio 擴展 添加到您的 IDE。 此擴展提供專案範本和 XAML 預覽器。 它提高了您的開發體驗。

對於從跨平台 WPF 專案轉換過來的人,Avalonia C# 提供了一個熟悉的開發過程,包含訪問由 .NET Foundation 支持的外部鏈接和資源。

您的第一個 Avalonia 應用程式

創建您的第一個 Avalonia 應用程式很簡單。 打開您的 IDE 並選擇 Avalonia 專案範本。 這將創建一個默認 Avalonia 設置的新專案。 該專案包括一個主窗和基本配置。 運行專案以查看您的第一個 Avalonia 應用程式的效果。 您現在已經開始了 Avalonia C# 的旅程。

Avalonia C# (它如何為開發人員工作):圖 1

探索 Avalonia UI 特性

理解 Avalonia UI 和 XAML

Avalonia UI 使用 XAML 作為其用戶界面設計。 XAML 是一種標記語言,用於定義 UI 元素。 以下是 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>
XML

這段代碼創建了一個帶有文本塊的窗,位於中心。 文本塊顯示 "Hello, Avalonia!"。 XAML 使設計和調整您的 UI 變得簡單。

樣式和控制範本

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>
XML

這種樣式改變了窗中所有按鈕的背景和文本顏色。 Avalonia 的樣式系統支持包括主題和動畫在內的複雜場景。

處理數據和控件

Avalonia 中的數據綁定使您的 UI 與數據源的連接成為可能。 以下是數據綁定的基本示例:

<TextBox Text="{Binding UserName}"/>
<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# 合併

假設您正在使用 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();

        // Attach development tools if in DEBUG mode
        // #if DEBUG
        this.AttachDevTools();
        // #endif

        // Assign event handler for the button click event
        this.FindControl<Button>("GeneratePdfButton").Click += OnGeneratePdfButtonClick;
    }

    private void InitializeComponent()
    {
        // Load the XAML layout into the current window
        AvaloniaXamlLoader.Load(this);
    }

    /// <summary>
    /// Event handler for when the "Generate PDF" button is clicked.
    /// Creates and saves a PDF file from an HTML string.
    /// </summary>
    private void OnGeneratePdfButtonClick(object sender, RoutedEventArgs e)
    {
        var Renderer = new ChromePdfRenderer();

        // Render an HTML string as a PDF document
        var PDF = Renderer.RenderHtmlAsPdf("<html><body><h1>Invoice</h1><p>This is a simple invoice.</p></body></html>");

        // Save the rendered PDF to the file system
        PDF.SaveAs("Invoice.pdf");

        // Display a message box to inform the user that the PDF is 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();

        // Attach development tools if in DEBUG mode
        // #if DEBUG
        this.AttachDevTools();
        // #endif

        // Assign event handler for the button click event
        this.FindControl<Button>("GeneratePdfButton").Click += OnGeneratePdfButtonClick;
    }

    private void InitializeComponent()
    {
        // Load the XAML layout into the current window
        AvaloniaXamlLoader.Load(this);
    }

    /// <summary>
    /// Event handler for when the "Generate PDF" button is clicked.
    /// Creates and saves a PDF file from an HTML string.
    /// </summary>
    private void OnGeneratePdfButtonClick(object sender, RoutedEventArgs e)
    {
        var Renderer = new ChromePdfRenderer();

        // Render an HTML string as a PDF document
        var PDF = Renderer.RenderHtmlAsPdf("<html><body><h1>Invoice</h1><p>This is a simple invoice.</p></body></html>");

        // Save the rendered PDF to the file system
        PDF.SaveAs("Invoice.pdf");

        // Display a message box to inform the user that the PDF is 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()

		' Attach development tools if in DEBUG mode
		' #if DEBUG
		Me.AttachDevTools()
		' #endif

		' Assign event handler for the button click event
		AddHandler FindControl(Of Button)("GeneratePdfButton").Click, AddressOf OnGeneratePdfButtonClick
	End Sub

	Private Sub InitializeComponent()
		' Load the XAML layout into the current window
		AvaloniaXamlLoader.Load(Me)
	End Sub

	''' <summary>
	''' Event handler for when the "Generate PDF" button is clicked.
	''' Creates and saves a PDF file from an HTML string.
	''' </summary>
	Private Sub OnGeneratePdfButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
		Dim Renderer = New ChromePdfRenderer()

		' Render an HTML string as a PDF document
		Dim PDF = Renderer.RenderHtmlAsPdf("<html><body><h1>Invoice</h1><p>This is a simple invoice.</p></body></html>")

		' Save the rendered PDF to the file system
		PDF.SaveAs("Invoice.pdf")

		' Display a message box to inform the user that the PDF is generated
		MessageBox.Show(Me, "Invoice PDF generated successfully.", "Success")
	End Sub
End Class
$vbLabelText   $csharpLabel

這段代碼定義了應用程式主窗口的 MainWindow 類。 MainWindow 構造函數初始化窗口並為按鈕的 Click 事件設置事件處理程序。 OnGeneratePdfButtonClick 方法通過使用 IronPDF 的 ChromePdfRenderer 類來處理點擊事件,將 HTML 渲染為 PDF 文檔並保存。

結論

Avalonia C# (它如何為開發人員工作):圖 3

對於渴望在不犧牲 UI 質量或性能的情況下擴展其應用程式在多個平台上影響力的開發人員而言,Avalonia 提供了一個引人注目的解決方案。 首先訪問 Avalonia 文檔並加入社群,探索如何這個強大的 UI 框架能提升您的 C# 開發專案。

如果您想將其與 IronPDF 合併,那麼您可以嘗試 IronPDF 的 免費試用選項。 IronPDF 的定價從 $799 開始。

常見問題解答

什麼是 Avalonia C#?

Avalonia C# 是一個跨平台的 UI 框架,允許開發人員創建能夠在 Windows、Linux 和 macOS 等多個平台上運行的應用程式。它提供統一的專案和控制模板以簡化跨平台開發。

怎樣在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字符串轉換為 PDF。您還可以使用 RenderHtmlFileAsPdf 將 HTML 文件轉換為 PDF。

Avalonia 如何增強現有的 WPF 應用程式?

Avalonia 通過使它們跨多個平台的應用範圍擴展,而無需昂貴且風險的重寫,以增強現有的 WPF 應用程式。

應用程式如何將視圖或數據匯出為 PDF?

通過使用 IronPDF,用 Avalonia 構建的應用程式可以將視圖或數據匯出為 PDF,從而增強它們的功能,具有生成、編輯和提取 PDF 內容的能力。

如何設置 Avalonia 的開發環境?

要設置 Avalonia 的開發環境,您需要安裝 Visual Studio 或 JetBrains Rider 並添加 Avalonia Visual Studio 擴展。此擴展提供專案模板和 XAML 預覽器。

如何創建您的第一個 Avalonia 應用程式?

要創建您的第一個 Avalonia 應用程式,請打開您的 IDE,選擇 Avalonia 專案模板,然後構建默認設置。運行專案以查看您的第一個 Avalonia 應用程式在運行中。

什麼是 XAML 以及它在 Avalonia 中的用途?

XAML 是 Avalonia 中用於用戶界面設計的標記語言。它定義 UI 元素,並允許用戶界面的設計和調整變得簡單。

Avalonia 如何支持樣式和控制模板?

Avalonia 提供一個靈活的樣式系統,允許定義應用程式的外觀和感覺。它支持控制模板的自定義,以進行一致的設計和複雜的情況,如主題和動畫。

Avalonia 的數據綁定是如何工作的?

Avalonia 中的數據綁定將 UI 元素連接到數據源,允許動態更新。它支持各種控件,如 ListBox、DataGrid 和 TreeView,以適應不同的數據場景。

在 Avalonia 應用程式中生成 PDF 的使用案例是什麼?

在 Avalonia 應用程式中生成 PDF 的使用案例是從 HTML 模板創建 PDF 發票。這可以通過整合 IronPDF 來實現,它將 HTML 渲染為 PDF 並保存它們,豐富了應用程式的功能。

開發人員如何開始使用 Avalonia 並整合 PDF 功能?

開發人員可以通過在項目中通過 NuGet 安裝 Avalonia 和 IronPDF 套件來開始,使用 Avalonia 文檔,並嘗試 IronPDF 的免費試用選項來探索融合功能。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。