Terminal.Gui
Terminal.Gui 是一个使用 C# 开发的基于控制台的工具库。这个框架的设计目的是, 在单色终端和支持鼠标的现代彩色终端上, 开发人员也可以非常轻松地进行开发并运行程序。
Terminal.Gui 是跨平台的, 它适用于 Windows、Linux 和 MacOS。
如何使用?
在 .NET Core 项目中安装, 可以使用 dotnet CLI 或者 Nuget。
dotnet add package Terminal.Gui
下面是一个简单的示例:
using Terminal.Gui;
classDemo
{
staticintMain
{
Application.Init;
var n = MessageBox.Query(50, 7,
"Question", "你喜欢这个控制台应用吗?", "Yes", "No");
Application.Shutdown;
return n;
}
}
运行程序后,控制台显示内容如下:
这个代码进行提示并返回一个整数值,它取决于用户选择的值(Yes,No,或者不选择去按 ESC 键)。
还可以通过组合所包含的各种视图来创建更有趣的用户界面。
下面是一个使用用户名和密码进行登录的一个示例。
// A simple Terminal.Gui example in C# - using C# 9.0 Top-level statements
using Terminal.Gui;
Application.Run ;
System.Console.WriteLine ($"Username: {((ExampleWindow)Application.Top).usernameText.Text}");
// Before the application exits, reset Terminal.Gui for clean shutdown
Application.Shutdown ;
// Defines a top-level window with border and title
publicclassExampleWindow : Window {
public TextField usernameText;
publicExampleWindow
{
Title = "Example App (Ctrl+Q to quit)";
// Create input components and labels
var usernameLabel = new Label {
Text = "Username:"
};
usernameText = new TextField ("") {
// Position text field adjacent to the label
X = Pos.Right (usernameLabel) + 1,
// Fill remaining horizontal space
Width = Dim.Fill ,
};
var passwordLabel = new Label {
Text = "Password:",
X = Pos.Left (usernameLabel),
Y = Pos.Bottom (usernameLabel) + 1
};
var passwordText = new TextField ("") {
Secret = true,
// align with the text box above
X = Pos.Left (usernameText),
Y = Pos.Top (passwordLabel),
Width = Dim.Fill ,
};
// Create login button
var btnLogin = new Button {
Text = "Login",
Y = Pos.Bottom(passwordLabel) + 1,
// center the login button horizontally
X = Pos.Center ,
IsDefault = true,
};
// When login button is clicked display a message popup
btnLogin.Clicked += => {
if (usernameText.Text == "admin" && passwordText.Text == "password") {
MessageBox.Query ("Logging In", "Login Successful", "Ok");
Application.RequestStop ;
} else {
MessageBox.ErrorQuery ("Logging In", "Incorrect username or password", "Ok");
}
};
// Add the views to the Window
Add (usernameLabel, usernameText, passwordLabel, passwordText, btnLogin);
}
}
运行程序后,输入 admin 和 password,页面显示如下
应用和扩展
Terminal.Gui 的社区非常活跃,已经有很多基于它开发的应用。
Terminal Gui Designer
TerminalGuiDesigner 使用 CodeDom 和 Roslyn 构建,可让您通过拖放来创建复杂的视图,就像您熟悉和喜爱的 WinForms 设计器一样。
Dotnet Dump 分析器
这是一个基于gui.cs 的小型ui,可以和 dotnet dump 一起使用,它能够列出所有受支持的 SOS 命令的输出。
项目地址
https://github.com/gui-cs/Terminal.Gui
点收藏
转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/412187.html