.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 Visual Studio 擴充功能到您的 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 中,資料繫結能夠讓您的使用者介面與資料來源連接。 這裡是資料繫結的基本範例:

<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# 整合

假設您正在使用 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.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >