.NET 幫助

NativeUI C#(對開發者的運作方式)

發佈 2024年4月3日
分享:

NativeUI 是 Grand Theft Auto 中 C# 開發者必不可少的框架 (俠盜獵車手) 模組化社區。它簡化了輕鬆無痛的嵌套選單系統和自定義橫幅的創建,因其使用者友好的方法和螢幕解析度而成為GTA模組製作者的最愛。Native UI MOD 旨在創建快速、類似Rockstar的選單,重現在Grand Theft Auto中發現的簡易嵌套選單的風格和響應速度。 (俠盜獵車手) 遊戲。在本教程中,我們將了解什麼是NativeUI以及如何進行整合 IronPDF 與之。

NativeUI 基本知識

NativeUI 在輕鬆建立巢狀選單方面表現出色,這對於希望打造複雜界面而不需要複雜代碼來處理事件回調和項目描述的模組製作者來說是一大福音。它還能適應各種螢幕解析度,確保選單在不同顯示器和許多舊版本上視覺上都很吸引人。NativeUI 的一大優勢是其無痛的巢狀選單系統,使開發人員能夠輕鬆地創建具有自定義指導按鈕的複雜選單結構。對於初學者來說,NativeUI 維基上的文件是一個寶貴的資源,提供了逐步指導來創建選單和版本飄動。

在 Visual Studio 中設定 NativeUI

在 Visual Studio 中的初始設定涉及下載 NativeUI 庫並將 .dll 檔案合併到您的模組項目中。NativeUI 庫是一個可透過流行的 C# 資源庫獲得的已發布封裝,使其易於整合到您的項目中。安裝過程很簡單。在設置 NativeUI 時,請確保您的開發環境與 NativeUI 庫之間的版本相容,以獲得最佳性能。

NativeUI C#(它如何為開發人員發揮作用):圖 1 - NativeUI

創建您的第一個選單

使用NativeUI創建您的第一個選單是一個令人興奮的步驟。該庫的設計旨在易於使用,使您可以輕鬆添加項目描述、簡單的按鈕,甚至自定義橫幅。對於初學者,建議從基本腳本開始,然後隨著對框架的熟悉程度逐漸增加更複雜的功能。以下是一個簡單的示例,展示如何創建帶有自定義紋理的基本選單:

using NativeUI;
public class YourFirstMenu : Script
{
    private MenuPool _menuPool;
    private UIMenu mainMenu;
    public YourFirstMenu()
    {
        _menuPool = new MenuPool();
        var mainMenu = new UIMenu("NativeUI", "SELECT AN OPTION");
        _menuPool.Add(mainMenu);
        AddMenuItems(mainMenu);
        _menuPool.RefreshIndex();
//mouse controls
        Tick += OnTick;
        KeyDown += OnKeyDown;
    }
    private void AddMenuItems(UIMenu menu)
    {
        var item1 = new UIMenuItem("Item 1", "Description for Item 1");
        menu.AddItem(item1);
        menu.OnItemSelect += (sender, item, index) =>
        {
            if (item == item1)
            {
                // Do something when Item 1 is selected
            }
        };
    }
    private void OnTick(object sender, EventArgs e)
    {
        _menuPool.ProcessMenus();
    }
    private void OnKeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.F5 && !_menuPool.IsAnyMenuOpen()) // Our menu on/off switch
            mainMenu.Visible = !mainMenu.Visible;
    }
}
using NativeUI;
public class YourFirstMenu : Script
{
    private MenuPool _menuPool;
    private UIMenu mainMenu;
    public YourFirstMenu()
    {
        _menuPool = new MenuPool();
        var mainMenu = new UIMenu("NativeUI", "SELECT AN OPTION");
        _menuPool.Add(mainMenu);
        AddMenuItems(mainMenu);
        _menuPool.RefreshIndex();
//mouse controls
        Tick += OnTick;
        KeyDown += OnKeyDown;
    }
    private void AddMenuItems(UIMenu menu)
    {
        var item1 = new UIMenuItem("Item 1", "Description for Item 1");
        menu.AddItem(item1);
        menu.OnItemSelect += (sender, item, index) =>
        {
            if (item == item1)
            {
                // Do something when Item 1 is selected
            }
        };
    }
    private void OnTick(object sender, EventArgs e)
    {
        _menuPool.ProcessMenus();
    }
    private void OnKeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.F5 && !_menuPool.IsAnyMenuOpen()) // Our menu on/off switch
            mainMenu.Visible = !mainMenu.Visible;
    }
}
Imports NativeUI
Public Class YourFirstMenu
	Inherits Script

	Private _menuPool As MenuPool
	Private mainMenu As UIMenu
	Public Sub New()
		_menuPool = New MenuPool()
		Dim mainMenu = New UIMenu("NativeUI", "SELECT AN OPTION")
		_menuPool.Add(mainMenu)
		AddMenuItems(mainMenu)
		_menuPool.RefreshIndex()
'mouse controls
		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)
		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)
		_menuPool.ProcessMenus()
	End Sub
	Private Sub OnKeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
		If e.KeyCode = Keys.F5 AndAlso Not _menuPool.IsAnyMenuOpen() Then ' Our menu on/off switch
			mainMenu.Visible = Not mainMenu.Visible
		End If
	End Sub
End Class
VB   C#

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

增強用戶互動

NativeUI 的一個關鍵方面是其創建既具功能性又易於使用的菜單的能力。此庫支持滑鼠控制。除了滑鼠控制,NativeUI 還擁有全面的控制器支持,確保菜單可用遊戲控制器輕鬆導航。您可以通過添加自訂的指示按鈕進一步提升用戶互動,這些按鈕引導用戶通過菜單選項和控制器支持。

自訂選單

NativeUI 允許高度自訂。您可以使用自己的材質和自訂橫幅來裝飾您的選單,使其具有獨特的外觀脫穎而出。添加這些個人化的元素不僅可以使您的選單更具視覺吸引力,還能為使用者創造更具沉浸感的體驗。

private void CustomizeMenu(UIMenu menu)
{
    menu.SetBannerType("texture.png"); // Custom banner texture
    menu.ChangeItemColour("Item 1", System.Drawing.Color.FromArgb(255, 0, 0)); // Red color for Item 1
}
private void CustomizeMenu(UIMenu menu)
{
    menu.SetBannerType("texture.png"); // Custom banner texture
    menu.ChangeItemColour("Item 1", System.Drawing.Color.FromArgb(255, 0, 0)); // Red color for Item 1
}
Private Sub CustomizeMenu(ByVal menu As UIMenu)
	menu.SetBannerType("texture.png") ' Custom banner texture
	menu.ChangeItemColour("Item 1", System.Drawing.Color.FromArgb(255, 0, 0)) ' Red color for Item 1
End Sub
VB   C#

IronPDF:C# PDF 庫

NativeUI C#(開發者如何使用):圖 2 - IronPDF

IronPDF 是.NET 中處理 PDF 檔案的完整函式庫。它使開發人員能夠建立新的 PDF、編輯現有的 PDF 並進行轉換。 HTML轉PDF使其成為任何需要處理 PDF 文件的 C# 應用程式必備的庫。

在 NativeUI 應用程式中實現 IronPDF

在 C# 專案中與 NativeUI 整合 IronPDF 需要將 IronPDF 套件添加到 Visual Studio 專案中。這可以很容易地通過 Visual Studio 的 NuGet 套件管理器來完成。一旦設置好,你就可以在與 NativeUI 元素一起使用 IronPDF 的功能。

考慮一個需要根據使用者從 NativeUI 介面輸入的資訊生成報告的應用程式。以下是如何使用 IronPDF 達成這一目標的方法:

using IronPdf;
using NativeUI;
public class ReportGenerator
{
    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();
        // Event handlers for menu
    }
    private void AddPdfGenerationOption(UIMenu menu)
    {
        var generateReportItem = new UIMenuItem("Generate Report", "Create a PDF report");
        menu.AddItem(generateReportItem);
        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");
        // Notify user that the PDF report has been generated
    }
}
using IronPdf;
using NativeUI;
public class ReportGenerator
{
    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();
        // Event handlers for menu
    }
    private void AddPdfGenerationOption(UIMenu menu)
    {
        var generateReportItem = new UIMenuItem("Generate Report", "Create a PDF report");
        menu.AddItem(generateReportItem);
        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");
        // Notify user that the PDF report has been generated
    }
}
Imports IronPdf
Imports NativeUI
Public Class ReportGenerator
	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()
		' Event handlers for menu
	End Sub
	Private Sub AddPdfGenerationOption(ByVal menu As UIMenu)
		Dim generateReportItem = New UIMenuItem("Generate Report", "Create a PDF report")
		menu.AddItem(generateReportItem)
		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")
		' Notify user that the PDF report has been generated
	End Sub
End Class
VB   C#

結論

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

將 IronPDF 與 NativeUI 集成到 C# 應用程序中是一個強大的組合,可以顯著提升功能性和用戶體驗。無論是用於創建商業報告、教育工具還是綜合數據表單,這個組合都為開發者提供了一個構建複雜且高質量應用程序的強大平台。通過創意和深思熟慮的實施,這種集成的潛在應用範圍廣泛且多樣化。

開始使用 IronPDF的 免費試用 並探索其全部潛力。當您準備好投入時,授權從僅 $liteLicense 開始——如此強大功能的低廉價格!

< 上一頁
C# 虛擬關鍵字(開發人員如何使用)
下一個 >
C# PostgreSQL(如何為開發人員運作)

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

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