首页 > 解决方案 > 在 wpf 应用程序中打开控制台

问题描述

我试图按照本教程进行操作:https ://ikriv.com/blog/?p=2470 。因此,您使用以下代码创建了一个 WPF 应用程序和 program.cs:

class Program
{
    [STAThread]
    public static void Main(string[] args)
    {
        var app = new App();

        app.InitializeComponent();
        app.Run();
    }
}

然后只需更改启动和输出类型。

但是,这个解决方案似乎在新的 .NET 5.0 中出现了问题,而它在 .NET Framework 中运行良好。有没有办法在新版本中同样简单地做到这一点?非常感谢你。

标签: c#wpfconsole.net-5

解决方案


@纳曼库马尔。

要打开控制台应用程序,您可以在 WPF 应用程序(.NET 5.0)中手动打开控制台窗口。您可以将AllocConsoleFreeConsole方法添加到您的类并使用它,如下所示:

public partial class MainWindow : Window
    {
        [DllImport("Kernel32")]
        public static extern void AllocConsole();

        [DllImport("Kernel32", SetLastError = true)]
        public static extern void FreeConsole();

        public MainWindow()
        {
            InitializeComponent();
            OutputTextBox.Focus();
            AllocConsole();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var line = OutputTextBox.Text;
            Console.Out.WriteLine(line);
        }
private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            FreeConsole();
        }
  }

推荐阅读