.NET 幫助

Avalonia C#(它是如何為開發者工作的)

發佈 2024年4月29日
分享:

簡介

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 擴充套件 到您的集成開發環境(IDE)中。此擴充功能提供項目模板和XAML預覽器。它提升了您的開發體驗。

對於那些從跨平台WPF項目過渡的用戶,Avalonia C# 提供了熟悉的開發過程,以及由.NET基金會支持的外部鏈接和資源的訪問。

建立你的第一個 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>
'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#

這段代碼創建了一個在中央有文字塊的窗口。文字塊顯示“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>
'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 中,數據綁定能夠將 UI 連接至數據源。以下是數據綁定的基本示例:

<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 的一個突出特點是其轉換能力 HTML轉PDF這使其成為生成報告、發票或任何可以作為網頁呈現的文件的極有用工具。

使用案例:將 IronPDF 與 Avalonia 合併應用

假設你正在使用 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

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

如果您想將其與IronPDF合併,您可以嘗試IronPDF的 免費試用 IronPDF 的價格從 $749 起。

< 上一頁
Mediatr C#(對開發者來說如何運作)
下一個 >
Masstransit C#(它如何為開發者工作)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >