Ähnlich wie diese Frage , außer dass das Konsolenprogramm umschlossen ist in der WPF-Anwendung erzeugt farbige Ausgabe, so wäre es schön, wenn ich sowohl die Farbe als auch den Text erfassen könnte.
Dies ist mein erstes WPF-Programm und ich bin mir nicht sicher, wie ich das richtige Steuerelement finden / ändern soll. Momentan verwende ich nur eine TextBox, die funktioniert, aber nur reinen Text erfasst.
Update: Ich habe versucht, RichTextBox zu verwenden:
%Vor%Leider zeigte es nur Klartext.
Wenn ich verstehe, was Sie richtig machen wollen, möchten Sie eine Legacy-App, die auf der Konsole ausgeführt wird, screenen und die Konsole in einem Steuerelement in Ihrer WPF-App über yourprocess.StandardOutput
ausgeben lassen.
Die Farbdaten (und Formatierung), die von der Konsole kommen, sind ANSI. Dies wird in Form von Steuerzeichen im umgeleiteten Konsolentext angezeigt, die als erweiterte ASCII-Zeichen und -Ziffern angezeigt werden. Sie benötigen ein ANSI-Interpreter-Steuerelement, um dieses in Farbdaten umzuwandeln. Ich weiß, dass es mehrere ANSI-Terminalsteuerungen gibt, die leicht angepasst werden können - diese zum Code Project kann die ANSI-Formatierung verarbeiten, es handelt sich jedoch um ein vollständiges ANSI-Terminal zur Verarbeitung einer Verbindung. Möglicherweise müssen Sie den terminalen Teil des Codes durch etwas ersetzen, das die von yourprocess.StandarOutput.ReadToEnd()
zurückgegebene Zeichenfolge anzeigen kann.
Hier sind die ANSI / VT100-Steuercodes , die Sie benötigen, wenn Sie einen eigenen Formatierer schreiben möchten.
Tags und Links wpf .net c# console-application wpf-controls