开发C#Visual Studio .exes类似于Java

时间:2017-10-25 15:41:11

标签: c# wpf visual-studio-2017 console-application

我是从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)输出到调试控制台不是在窗口打开的控制台。

感谢您提供任何帮助!

3 个答案:

答案 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?