跳至頁尾內容
開發者更新

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

NativeUI 是專為 Grand Theft Auto (GTA) 模組社群的 C# 開發者設計的基本框架。 它簡化了簡單且無痛的巢狀選單系統和自訂橫幅的建立,因其對使用者友好的方法和對各種螢幕解析度的適應性而受到 GTA 模組製作者的喜愛。 NativeUI MOD 的設計旨在快速建立類 Rockstar 的選單,回應了 GTA 遊戲中巢狀選單的風格和響應速度。 在本教程中,我們將了解什麼是 NativeUI,以及如何將 IronPDF 與其整合。

NativeUI 基礎

NativeUI 擅長輕鬆建立巢狀選單,這對於希望構建精緻介面的模組製作者是一大助益,而無需處理事件回調和項目描述的複雜程式碼。 它也可以適應各種螢幕解析度,確保選單在不同顯示器上都具有視覺吸引力。 NativeUI 的一個優勢是它簡單的巢狀選單系統,允許開發者不費力地建立具有自訂說明按鈕的複雜選單結構。 對於初學者來說,NativeUI 的 wiki 文件是一個寶貴的資源,提供選單建立的分步指南。

在 Visual Studio 中設置 NativeUI

在 Visual Studio 中的初始設置涉及下載 NativeUI 程式庫並將 .dll 檔案加入您的模組專案。 NativeUI 程式庫是一個發佈的包,可以通過流行的 C# 儲存庫獲得,方便您將其整合到您的專案中。 安裝過程很簡單。 在設置 NativeUI 時,確保您的開發環境和 NativeUI 程式庫之間的版本相容以獲得最佳性能。

NativeUI C#(對開發者的運作方式):圖1 - NativeUI

建立您的第一個選單

using NativeUI 建立您的第一個選單是一個令人興奮的過程。該程式庫的設計便利了使用,允許您輕鬆新增項目描述、簡單按鈕,甚至自訂橫幅。 對於初學者來說,建議從基礎腳本開始,隨著您對框架的熟悉,逐漸新增更複雜的功能。 以下是一個使用自有紋理建立基本選單的簡單範例:

using System;
using System.Windows.Forms;
using NativeUI;

public class YourFirstMenu : Script
{
    private MenuPool _menuPool;
    private UIMenu mainMenu;

    public YourFirstMenu()
    {
        _menuPool = new MenuPool();
        mainMenu = new UIMenu("NativeUI", "SELECT AN OPTION");
        _menuPool.Add(mainMenu);
        AddMenuItems(mainMenu);
        _menuPool.RefreshIndex();

        // Subscribe to event handlers for updating and input control
        Tick += OnTick;
        KeyDown += OnKeyDown;
    }

    private void AddMenuItems(UIMenu menu)
    {
        var item1 = new UIMenuItem("Item 1", "Description for Item 1");
        menu.AddItem(item1);

        // Set up an event for when an item is selected
        menu.OnItemSelect += (sender, item, index) =>
        {
            if (item == item1)
            {
                // Do something when Item 1 is selected
            }
        };
    }

    private void OnTick(object sender, EventArgs e)
    {
        // Process the pool to handle drawing and interactions
        _menuPool.ProcessMenus();
    }

    private void OnKeyDown(object sender, KeyEventArgs e)
    {
        // Toggle the visibility of the menu with F5 key
        if (e.KeyCode == Keys.F5 && !_menuPool.IsAnyMenuOpen())
            mainMenu.Visible = !mainMenu.Visible;
    }
}
using System;
using System.Windows.Forms;
using NativeUI;

public class YourFirstMenu : Script
{
    private MenuPool _menuPool;
    private UIMenu mainMenu;

    public YourFirstMenu()
    {
        _menuPool = new MenuPool();
        mainMenu = new UIMenu("NativeUI", "SELECT AN OPTION");
        _menuPool.Add(mainMenu);
        AddMenuItems(mainMenu);
        _menuPool.RefreshIndex();

        // Subscribe to event handlers for updating and input control
        Tick += OnTick;
        KeyDown += OnKeyDown;
    }

    private void AddMenuItems(UIMenu menu)
    {
        var item1 = new UIMenuItem("Item 1", "Description for Item 1");
        menu.AddItem(item1);

        // Set up an event for when an item is selected
        menu.OnItemSelect += (sender, item, index) =>
        {
            if (item == item1)
            {
                // Do something when Item 1 is selected
            }
        };
    }

    private void OnTick(object sender, EventArgs e)
    {
        // Process the pool to handle drawing and interactions
        _menuPool.ProcessMenus();
    }

    private void OnKeyDown(object sender, KeyEventArgs e)
    {
        // Toggle the visibility of the menu with F5 key
        if (e.KeyCode == Keys.F5 && !_menuPool.IsAnyMenuOpen())
            mainMenu.Visible = !mainMenu.Visible;
    }
}
Imports System
Imports System.Windows.Forms
Imports NativeUI

Public Class YourFirstMenu
	Inherits Script

	Private _menuPool As MenuPool
	Private mainMenu As UIMenu

	Public Sub New()
		_menuPool = New MenuPool()
		mainMenu = New UIMenu("NativeUI", "SELECT AN OPTION")
		_menuPool.Add(mainMenu)
		AddMenuItems(mainMenu)
		_menuPool.RefreshIndex()

		' Subscribe to event handlers for updating and input control
		AddHandler Me.Tick, AddressOf OnTick
		AddHandler Me.KeyDown, AddressOf OnKeyDown
	End Sub

	Private Sub AddMenuItems(ByVal menu As UIMenu)
		Dim item1 = New UIMenuItem("Item 1", "Description for Item 1")
		menu.AddItem(item1)

		' Set up an event for when an item is selected
		AddHandler menu.OnItemSelect, Sub(sender, item, index)
			If item = item1 Then
				' Do something when Item 1 is selected
			End If
		End Sub
	End Sub

	Private Sub OnTick(ByVal sender As Object, ByVal e As EventArgs)
		' Process the pool to handle drawing and interactions
		_menuPool.ProcessMenus()
	End Sub

	Private Sub OnKeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
		' Toggle the visibility of the menu with F5 key
		If e.KeyCode = Keys.F5 AndAlso Not _menuPool.IsAnyMenuOpen() Then
			mainMenu.Visible = Not mainMenu.Visible
		End If
	End Sub
End Class
$vbLabelText   $csharpLabel

此腳本設置了一個包含一個項目的基本選單,並處理其選擇。 NativeUI 使用基於事件的回調,這意味著您的選單中的操作將觸發特定事件,使您的 UI 具有互動性和響應性。

增強使用者互動

NativeUI 的一個關鍵方面是它能建立既功能強大又使用者友好的選單。 該程式庫支持滑鼠控制。 除了滑鼠控制外,NativeUI 還具有全面的控制器支持,確保選單可以輕鬆由遊戲控制器導覽。 您可以通過新增自訂說明按鈕進一步增強使用者互動,這些按鈕指導使用者操作選單選項。

自訂選單

NativeUI 允許高度自訂。 您可以使用自己的紋理和自訂橫幅來裝飾您的選單,使它們擁有一個獨特的外觀。 新增這些個人化的設計不僅讓您的選單更具有視覺吸引力,還為使用者創造了更具沉浸感的體驗。

private void CustomizeMenu(UIMenu menu)
{
    // Set a custom banner texture for the menu
    menu.SetBannerType("texture.png");

    // Change the color of a specific menu item to red
    menu.ChangeItemColour("Item 1", System.Drawing.Color.FromArgb(255, 0, 0));
}
private void CustomizeMenu(UIMenu menu)
{
    // Set a custom banner texture for the menu
    menu.SetBannerType("texture.png");

    // Change the color of a specific menu item to red
    menu.ChangeItemColour("Item 1", System.Drawing.Color.FromArgb(255, 0, 0));
}
Private Sub CustomizeMenu(ByVal menu As UIMenu)
	' Set a custom banner texture for the menu
	menu.SetBannerType("texture.png")

	' Change the color of a specific menu item to red
	menu.ChangeItemColour("Item 1", System.Drawing.Color.FromArgb(255, 0, 0))
End Sub
$vbLabelText   $csharpLabel

IronPDF:C# PDF 程式庫

NativeUI C#(對開發者的運作方式):圖2 - IronPDF

IronPDF 是 .NET 中處理 PDF 文件的完整程式庫。 它允許開發者建立新 PDF、編輯現有文件,並將 HTML 轉換為 PDF,使其成為任何需要處理 PDF 的 C# 應用程式的必備程式庫。

在 NativeUI 應用程式中實現 IronPDF

在與 NativeUI 的 C# 專案中整合 IronPDF 需要將 IronPDF 套件加入至您的 Visual Studio 專案中。 這可以通過 Visual Studio 中的 NuGet 套件管理器輕鬆完成。 一旦設置好,您可以使用 IronPDF 的功能以及 NativeUI 建立的 UI 元件。

假設應用程式需要根據 NativeUI 介面中的使用者輸入生成報告。 以下是如何使用 IronPDF 實現此目標:

using IronPdf;
using NativeUI;
using System;

public class ReportGenerator : Script
{
    private MenuPool _menuPool;
    private UIMenu mainMenu;

    public ReportGenerator()
    {
        _menuPool = new MenuPool();
        mainMenu = new UIMenu("Report Generator", "SELECT AN OPTION");
        _menuPool.Add(mainMenu);
        AddPdfGenerationOption(mainMenu);
        _menuPool.RefreshIndex();

        // Subscribe to event handlers for updating and input control
        Tick += OnTick;
        KeyDown += OnKeyDown;
    }

    private void AddPdfGenerationOption(UIMenu menu)
    {
        var generateReportItem = new UIMenuItem("Generate Report", "Create a PDF report");
        menu.AddItem(generateReportItem);

        // Set up an event for when an item is selected
        menu.OnItemSelect += (sender, item, index) =>
        {
            if (item == generateReportItem)
            {
                CreatePdfReport();
            }
        };
    }

    private void CreatePdfReport()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1><p>Report details...</p>");
        pdf.SaveAs("Report.pdf");

        // Notification to the user that the PDF report has been generated
        Console.WriteLine("PDF report generated and saved as Report.pdf");
    }

    private void OnTick(object sender, EventArgs e)
    {
        // Process the pool to handle drawing and interactions
        _menuPool.ProcessMenus();
    }

    private void OnKeyDown(object sender, KeyEventArgs e)
    {
        // Toggle the visibility of the menu with F5 key
        if (e.KeyCode == Keys.F5 && !_menuPool.IsAnyMenuOpen())
            mainMenu.Visible = !mainMenu.Visible;
    }
}
using IronPdf;
using NativeUI;
using System;

public class ReportGenerator : Script
{
    private MenuPool _menuPool;
    private UIMenu mainMenu;

    public ReportGenerator()
    {
        _menuPool = new MenuPool();
        mainMenu = new UIMenu("Report Generator", "SELECT AN OPTION");
        _menuPool.Add(mainMenu);
        AddPdfGenerationOption(mainMenu);
        _menuPool.RefreshIndex();

        // Subscribe to event handlers for updating and input control
        Tick += OnTick;
        KeyDown += OnKeyDown;
    }

    private void AddPdfGenerationOption(UIMenu menu)
    {
        var generateReportItem = new UIMenuItem("Generate Report", "Create a PDF report");
        menu.AddItem(generateReportItem);

        // Set up an event for when an item is selected
        menu.OnItemSelect += (sender, item, index) =>
        {
            if (item == generateReportItem)
            {
                CreatePdfReport();
            }
        };
    }

    private void CreatePdfReport()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1><p>Report details...</p>");
        pdf.SaveAs("Report.pdf");

        // Notification to the user that the PDF report has been generated
        Console.WriteLine("PDF report generated and saved as Report.pdf");
    }

    private void OnTick(object sender, EventArgs e)
    {
        // Process the pool to handle drawing and interactions
        _menuPool.ProcessMenus();
    }

    private void OnKeyDown(object sender, KeyEventArgs e)
    {
        // Toggle the visibility of the menu with F5 key
        if (e.KeyCode == Keys.F5 && !_menuPool.IsAnyMenuOpen())
            mainMenu.Visible = !mainMenu.Visible;
    }
}
Imports IronPdf
Imports NativeUI
Imports System

Public Class ReportGenerator
	Inherits Script

	Private _menuPool As MenuPool
	Private mainMenu As UIMenu

	Public Sub New()
		_menuPool = New MenuPool()
		mainMenu = New UIMenu("Report Generator", "SELECT AN OPTION")
		_menuPool.Add(mainMenu)
		AddPdfGenerationOption(mainMenu)
		_menuPool.RefreshIndex()

		' Subscribe to event handlers for updating and input control
		AddHandler Me.Tick, AddressOf OnTick
		AddHandler Me.KeyDown, AddressOf OnKeyDown
	End Sub

	Private Sub AddPdfGenerationOption(ByVal menu As UIMenu)
		Dim generateReportItem = New UIMenuItem("Generate Report", "Create a PDF report")
		menu.AddItem(generateReportItem)

		' Set up an event for when an item is selected
		AddHandler menu.OnItemSelect, Sub(sender, item, index)
			If item = generateReportItem Then
				CreatePdfReport()
			End If
		End Sub
	End Sub

	Private Sub CreatePdfReport()
		Dim renderer = New ChromePdfRenderer()
		Dim pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1><p>Report details...</p>")
		pdf.SaveAs("Report.pdf")

		' Notification to the user that the PDF report has been generated
		Console.WriteLine("PDF report generated and saved as Report.pdf")
	End Sub

	Private Sub OnTick(ByVal sender As Object, ByVal e As EventArgs)
		' Process the pool to handle drawing and interactions
		_menuPool.ProcessMenus()
	End Sub

	Private Sub OnKeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
		' Toggle the visibility of the menu with F5 key
		If e.KeyCode = Keys.F5 AndAlso Not _menuPool.IsAnyMenuOpen() Then
			mainMenu.Visible = Not mainMenu.Visible
		End If
	End Sub
End Class
$vbLabelText   $csharpLabel

結論

NativeUI C#(對開發者的運作方式):圖3 - License

在 C# 應用程式中整合 IronPDF 和 NativeUI 是一個強大的組合,可以顯著提升功能和使用者體驗。 無論是建立商業報告、教育工具還是全面的資料表單,此組合都為開發者提供了一個構建複雜和高質量應用程式的強大平台。 藉由創意和細致的實施,此整合的潛在應用範圍廣泛且多樣化。

透過 IronPDF 的免費試用開始,探索其全部潛力。 當您準備好投入時,授權從僅僅 $999 開始 - 如此強大功能的微小代價!

常見問題

我如何在 C# 中為遊戲模組建立巢狀選單系統?

NativeUI 是一個框架,簡化了遊戲模組中巢狀選單系統的建立,特別是在 Grand Theft Auto 社群中。它允許開發者構建複雜的介面而不必使用複雜的程式碼,確保與各種螢幕解析度的相容性。

如何將 PDF 程式庫整合到 C# 的選單系統中?

您可以在 Visual Studio 中透過 NuGet Package Manager 安裝 IronPDF,將 IronPDF 與像 NativeUI 這樣的 C# 選單系統整合。這樣的整合可以根據從選單介面收集的使用者輸入來生成和操作 PDF。

NativeUI 在 C# 應用程式中提供哪些自訂化選項?

NativeUI 為 C# 應用程式提供廣泛的自訂選項,包括選單的自訂紋理和橫幅。這些功能使開發者能夠建立視覺上獨特的選單,增強使用者體驗。

在 Visual Studio 中設置 NativeUI 的過程是什麼?

要在 Visual Studio 中設置 NativeUI,下載 NativeUI 程式庫並將 .dll 文件新增到您的專案中。確保您的開發環境與該程式庫相容,以確保最佳性能。程式庫的文件提供詳細的設置指令。

NativeUI 為修改模組中的使用者互動提供了哪些優勢?

NativeUI 通過支持滑鼠和控制器輸入來加強使用者互動,使選單易於導航。它還允許開發者包括自訂教學鍵,這可以有效地指導使用者通過各種選單選項。

基於事件的回調如何增強 C# 開發中的選單互動?

NativeUI 中的基於事件的回調允許開發者通過基於使用者動作觸發特定事件來建立響應迅速和互動的選單。此功能簡化了選單互動的管理,並顯著改善了使用者體驗。

有哪些資源可用於學習如何在 C# 中使用 NativeUI?

開發者可以存取 NativeUI GitHub 維基,它提供了綜合的資源和文件。這些資源提供了使用 NativeUI 框架在 C# 應用程式中建立和自訂選單的逐步指導。

我如何從 C# 選單系統生成 PDF 報告?

您可以通過將 IronPDF 與 NativeUI 應用程式整合來從 C# 選單系統生成 PDF 報告。整合完成後,您可以使用 IronPDF 根據通過選單介面收集的使用者輸入建立報告。

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

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

Jacob擁有曼徹斯特大學的土木工程一等榮譽學士學位(BEng),於1998-2001年之間獲得。在1999年於倫敦創辦他的第一家軟體公司並於2005年建立了他的第一批.NET元組件後,他專注於解決Microsoft生態系統中的複雜問題。

他的旗艦IronPDF和Iron Suite .NET程式庫在全球獲得了超過3000萬次NuGet安裝依據,他的基礎程式碼基繼續支援著世界各地開發者使用的工具。擁有25年的商業經驗和41年的程式設計專業知識,他仍專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron 支援團隊

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