c# - 在 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 中运行良好。有没有办法在新版本中同样简单地做到这一点?非常感谢你。
解决方案
@纳曼库马尔。
要打开控制台应用程序,您可以在 WPF 应用程序(.NET 5.0)中手动打开控制台窗口。您可以将AllocConsole和FreeConsole方法添加到您的类并使用它,如下所示:
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();
}
}
推荐阅读
- angular - 使用异步管道时的 ExpressionChangedAfterItHasBeenCheckedError
- javascript - 如何在javascript中使用url更新重新加载窗口
- scala - java.lang.ClassCastException:java.lang.String 无法转换为 java.lang.Float
- windows - 无法打开 Visual Studio 代码
- llvm - `ConstantInt::getTrue (LLVMContext &Context)` 和 `ConstantInt::getTrue (Type *Ty)` 有什么区别?
- swift - 在 SWIFT 中的大圆圈的边界上创建动态圆圈
- javascript - CreateHTMLDocument 与文档的自定义 URL
- reactjs - @react-google-maps Marker LatLng 抛出错误
- python - 如何在 Python 中打开具有多个 dtype 的 .bin 文件?
- c++ - node-gyp 没有在 macos 上正确链接库