.NET 帮助

NativeUI C#(开发者指南)

发布 2024年四月3日
分享:

本地用户界面是《侠盗猎车手》中 C# 开发人员必不可少的框架。(一般临时人员)模组社区。 它简化了创建简单无痛的嵌套菜单系统和自定义横幅,因此在GTA模组爱好者中因其用户友好的方法和屏幕分辨率而受到青睐。 Native UI MOD旨在创建快速、类似Rockstar的菜单,模仿《侠盗猎车手》中易于嵌套菜单的风格和响应性。(一般临时人员)游戏。 在本教程中,我们将了解什么是NativeUI以及如何进行集成。IronPDF用它。

NativeUI基础知识

NativeUI 在轻松创建嵌套菜单方面表现出色,这对希望构建复杂界面的 mod 制作者来说是一大福音,因为无需为事件回调和项目描述编写复杂代码。 它还可以适应各种屏幕分辨率,确保菜单在不同显示器和许多旧版本上都具有视觉吸引力。 NativeUI 的优势之一是其简便的嵌套菜单系统,使开发人员能够轻松创建具有自定义指令按钮的复杂菜单结构。 对于初学者来说,NativeUI 的 wiki 文档是一个宝贵的资源,提供了有关菜单创建和版本浮动的逐步指导。

在 Visual Studio 中设置 NativeUI

在 Visual Studio 中的初始设置包括下载 NativeUI 库,并将 .dll 文件集成到您的 mod 项目中。 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是一个用于处理PDF文件的全面.NET库。 它使开发人员能够创建新的PDF、编辑现有的PDF以及进行转换。HTML 转 PDF使其成为任何需要处理 PDF 文档的 C# 应用程序的必要库。

在NativeUI应用中实现IronPDF

将IronPDF集成到带有NativeUI的C#项目中需要将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 - 许可证

将IronPDF与NativeUI集成到C#应用程序中的结合是一种强大的组合,可以显著提升功能和用户体验。 无论是用于创建业务报告、教育工具还是综合数据表单,这种组合都为开发人员提供了一个强大的平台,用于构建复杂而高质量的应用程序。 凭借创造力和深思熟虑的实施,这种集成的潜在应用广泛而多样。

开始使用IronPDF的免费试用并探索其全部潜力。 当您准备好购买时,许可证的起价仅为 $749——这是如此强大功能的小成本。!

< 前一页
C# Virtual 关键字(对开发者的作用)
下一步 >
C# PostgreSQL(对开发人员的工作原理)

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >