我是从Java开发到Visual Studio中的C#开发。除了一件事之外,我对这种变化非常满意:我可以编写隐藏或GUI应用程序的方式。
我曾经使用Swing在Java中开发基于GUI的应用程序。
我想做的是使用static void Main(string[] args){}
的控制台应用程序风格开发应用程序但是我希望能够使用类似于{的方法创建窗口并告诉它们可见/打开{1}}。我想要的是一个控制台风格的应用程序,我可以使用WPF窗口及其组件,我希望能够在Visual Studio 2017内置的窗口设计器中创建这些窗口。
如果可能的话,如果我有一个显示/隐藏控制台的选项也会很好。我尝试了一些不同的方法来完成此操作,例如this,但是显示的控制台没有链接到C#Console对象,所以在Visual Studio 2017中执行jFrameObject.setVisible(bool)
输出到调试控制台不是在窗口打开的控制台。
感谢您提供任何帮助!
答案 0 :(得分:1)
首先,您可以使用Windows窗体,它可以让您轻松地将GUI元素添加到应用程序,例如在控制台应用程序的Main()中:
var form = new System.Windows.Forms.Form();
form.Text = "Window Title";
var button = new System.Windows.Forms.Button();
button.Text = "OK";
form.Controls.Add(button);
form.ShowDialog();
这要求您添加对[System.Windows.Forms]程序集的引用。
至于控制台窗口[问题]:Show/Hide the console window of a C# console application
如果你想做WPF,添加一个代表某个窗口的类:
public class SomeWindow : System.Windows.Window
{
public SomeWindow()
{
this.AddChild(new System.Windows.Controls.Button() { Content = "OK", Height = 30, Width = 100 });
}
}
然后使用应用程序对象运行窗口:
new System.Windows.Application().Run(new SomeWindow());
Main需要使用[STAThreadAttribute]标记。需要引用程序集PresentationCore,PresentationFramework和WindowsBase。
答案 1 :(得分:1)
如果你想打开一个WPF窗口(即使在一个控制台项目中),也没什么特别的。
您可以使用Visual Studio实用程序(新建/窗口或类似内容)添加WPF表单。
要打开窗户,您有两种可能:
第一个是打开一个对话框模式(在窗体关闭之前代码不会继续)
MyWindow window = new MyWindow();
window.ShowModal();
第二个解决方案是打开窗口而不等待对话框关闭(某种类似异步)
MyWindow window = new MyWindow();
window.Show();
您可以在this article ..
找到更多信息享受用C#而不是Java编程。
答案 2 :(得分:0)
您可以从控制台应用程序开始,并添加对WinForms或WPF程序集的引用以打开窗口。
或者,您可以从WinForms或WPF应用程序开始,并使用Win32 API打开控制台:How do I create a C# app that decides itself whether to show as a console or windowed app?