.NET 幫助

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

發佈 2024年4月3日
分享:

NativeUI是 Grand Theft Auto 中 C# 開發者必不可少的框架(俠盜獵車手)模組社群。 它簡化了輕鬆無痛的嵌套菜單系統和自定義橫幅的創建,因其用戶友好的方法和屏幕分辨率而成為GTA模組製作者的最愛。 Native UI MOD 設計用於創建快速的、類似 Rockstar 的選單,回應在《俠盜獵車手》中特色鮮明且響應迅速的巢狀選單風格。(俠盜獵車手)遊戲。 在本教程中,我們將了解什麼是NativeUI以及如何整合它IronPDF與之。

NativeUI 基本介紹

NativeUI 在輕鬆創建巢狀菜單方面表現出色,這對於想要構建複雜介面的 modder 而言是一大福音,他們無需為事件回調和項目描述編寫複雜的代碼。 它同時適應各種螢幕解析度,確保菜單在不同顯示器和許多舊版本上視覺上都很吸引人。 NativeUI 的一大優勢是其簡便的嵌套菜單系統,允許開發人員輕鬆創建具有自定義指令按鈕的複雜菜單結構。 對於初學者來說,NativeUI 在其 wiki 上的文檔是一個寶貴的資源,提供分步指南來幫助創建選單和版本浮動。

在 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 使用基於事件的回調機制,這意味著您菜單中的操作會觸發特定事件,使您的用戶介面具有互動性和響應能力。

增強用戶互動

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# 專案中整合 IronPDF 與 NativeUI 需要將 IronPDF 套件新增至您的 Visual Studio 專案。 這可以透過 Visual Studio 中的 NuGet 套件管理器輕鬆完成。 設定完成後,您可以將IronPDF的功能與使用NativeUI創建的UI元素一起使用。

考慮需要基於從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 的免費試用並探索其全部潛力。 當您準備好進行購買時,許可證起價僅為 $749 - 如此強大功能的價格相當優惠。!

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

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

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