跳過到頁腳內容
.NET幫助

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

Avalonia C# 是跨平台的 UI 框架,為開發人員提供統一的專案和控制範本,以建立可在多平台上順暢運作的應用程式。 它可讓開發人員建立可在 Windows、Linux、macOS 等平台上執行的應用程式。 這使得它對於那些希望開發能接觸到廣泛受眾的應用程式的人而言,是一個非常有價值的工具。

有了 Avalonia,建立跨平台桌面應用程式變得更簡單。 該架構支援多種平台。 此相容性功能可擴展現有 WPF 應用程式的跨平台使用範圍,而無須進行昂貴且具風險的重寫工作,進而增強現有 WPF 應用程式的功能。

IronPDF Features 是一個可讓開發人員在 .NET 應用程式中產生 PDF 的函式庫。 與 Avalonia 整合後,可建立可將檢視或資料匯出至 PDF 的應用程式。 這可為您的跨平台應用程式增添寶貴的功能。

透過結合 Avalonia 與 IronPDF,開發人員擁有了一套強大的工具。 這些工具允許開發複雜的應用程式。 這些應用程式可以有豐富的使用者介面,並能夠產生 PDF 文件。

Avalonia C# 入門

設定您的開發環境

要開始使用 Avalonia 開發,您需要設定您的開發環境。 您可以使用 Visual Studio 或 JetBrains Rider 作為您的 IDE。首先,安裝 Visual Studio 或 JetBrains Rider。 然後,將 Avalonia Visual Studio Extension 新增至您的 IDE。此擴充套件提供專案範本和 XAML 預覽器。 它能提升您的開發經驗。

對於那些從跨平台 WPF 專案轉換過來的人,Avalonia C# 提供了熟悉的開發流程,並可存取 .NET 基金會支援的外部連結和資源。

您的第一個 Avalonia 應用程式

建立您的第一個 Avalonia 應用程式非常簡單直接。 開啟您的 IDE 並選擇 Avalonia 專案範本。 這會以預設的 Avalonia 設定建立一個新專案。專案包含一個主視窗和基本設定。 執行專案,看看您的第一個 Avalonia 應用程式在運作中。 現在您已經開始了 Avalonia C# 的旅程。

Avalonia C# (How It Works For Developers):圖 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 中的資料綁定功能可讓您的使用者介面與資料來源連接。 以下是資料綁定的基本範例:

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

此程式碼將 TextBoxText 屬性綁定至資料上下文中的 UserName 屬性。 Avalonia 支援各種不同用途的控制項,例如 ListBoxDataGridTreeView

將 IronPDF 與 Avalonia UI 整合。

IronPDF 簡介

Avalonia C# (How It Works For Developers):圖 2

IronPDF Library Overview 是一個 .NET 函式庫,可輕鬆處理 PDF。 它允許開發人員以程式化的方式建立、編輯和擷取 PDF 內容。 IronPDF 的突出功能之一是它能夠使用 IronPDF 將 HTML 轉換為 PDF,這使得它在生成報告、發票或任何可以渲染為網頁的文件時非常有用。

Use Case: Merging IronPDF with 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# (How It Works For Developers):圖 3

對於渴望在不犧牲 UI 品質或效能的情況下,將應用程式擴展至多方平台的開發人員而言,Avalonia 提供了令人信服的解決方案。 從瀏覽 Avalonia 文件開始,並加入社群,探索這個強大的 UI 框架如何提升您的 C# 開發專案。

如果您想要與 IronPDF 合併,那麼您可以試試 IronPDF 的 免費試用選項。 IronPDF 的定價從 $999 起。

常見問題解答

什麼是 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 的免費試用選項來探索融合功能。

Jacob Mellor, Team Iron 首席技術官
首席技術官

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我