相关疑难解决方法(0)

WPF应用程序没有输出到控制台?

我从一个非常简单的WPF测试应用程序使用Console.WriteLine(),但是当我从命令行执行应用程序时,我看不到任何内容被写入控制台.有谁知道这里会发生什么?

我可以通过在VS 2008中创建WPF应用程序来重现它,并简单地在执行任何地方添加Console.WriteLine("text").有任何想法吗?

我现在需要的只是Console.WriteLine()这么简单.我意识到我可以使用log4net或其他日志记录解决方案,但我真的不需要这个应用程序的那么多功能.

编辑:我应该记得Console.WriteLine()是用于控制台应用程序.哦,好吧,没有愚蠢的问题,对吗?:-)我现在只使用System.Diagnostics.Trace.WriteLine()和DebugView.

.net c# wpf console

101
推荐指数
6
解决办法
10万
查看次数

从WPF Windows应用程序到实际控制台输出Console.WriteLine

背景:我正在努力为现有的WPF Windows应用程序添加命令行和批处理功能.当我在启动时检测到一些选项时,我禁止窗口出现,进行一些处理并立即退出.现在,因为没有UI,我想将一些消息输出到stdout/stderr.考虑以下代码:

namespace WpfConsoleTest
{
    public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            Console.WriteLine("Start");
            System.Threading.Thread.Sleep(1000);
            Console.WriteLine("Stop");
            Shutdown(0);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我从命令行运行时,我希望以下输出:

Start
Stop
Run Code Online (Sandbox Code Playgroud)

但反而:

C:\test>WpfConsoleTest.exe

C:\test>
Run Code Online (Sandbox Code Playgroud)

但是,您可以重定向输出:

C:\test>WpfConsoleTest.exe > out.txt

C:\test>type out.txt
Start
Stop
Run Code Online (Sandbox Code Playgroud)

不幸的是,重定向到CON不起作用:

C:\test>WpfConsoleTest.exe > CON

C:\test>
Run Code Online (Sandbox Code Playgroud)

另一个问题是WpfConsoleTest.exe在启动后立即退出.所以:

C:\test>WpfConsoleTest.exe > out.txt & type out.txt

C:\test>
Run Code Online (Sandbox Code Playgroud)

但:

C:\test>WpfConsoleTest.exe > out.txt & ping localhost > nul & type out.txt
Start
Stop
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能够提供的最佳解决方案是使用start /B /wait:

C:\test>start /B /wait WpfConsoleTest.exe …
Run Code Online (Sandbox Code Playgroud)

c# wpf cmd batch-file

27
推荐指数
3
解决办法
2万
查看次数

如何为WPF制作简单的只读输出日志控制台?

我有一个 WPF 应用程序,我想添加一个按钮来打开控制台窗口并显示 Console.WriteLine 消息。它不一定是一个 CMD 控制台,只是一个类似模拟的显示框。

我的想法是创建一个带有 ScrollViewer/TextBox 的 Console.xaml 窗口,并使用类似的方法重定向 WriteLine,但我无法让它工作:

XAML

<ScrollViewer Name="Scroller" Margin="0" Background="#FF000128">
    <TextBlock Name="OutputBlock" Foreground="White" FontFamily="Consolas"/>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

C#

System.Diagnostics.Debug.WriteLine("hello", console.OutputBlock.Text);
Run Code Online (Sandbox Code Playgroud)

构造函数

public Console(MainWindow mainwindow)
{
    InitializeComponent();
    this.mainwindow = mainwindow;
}
Run Code Online (Sandbox Code Playgroud)

我在 Photoshop 中用虚构的日志文本制作的示例

日志控制台示例

我尝试了这个解决方案,但我不确定如何使用它。我收到 OnStartup“找不到合适的方法来覆盖”错误:

/sf/answers/729124861/

我也尝试过这个解决方案。我完全复制了,但它充满了错误:

/sf/answers/1047023491/

这段代码没有给出任何错误,但我不知道它应该如何使用:

/sf/answers/214124501/

c# wpf visual-studio

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×3

wpf ×3

.net ×1

batch-file ×1

cmd ×1

console ×1

visual-studio ×1