Tekstowy RPG, jak wsadzić konsolę do TextBoxa?

0

Witam mam zamiar stworzyć textowego rpga i miałem pomysł, aby go trochę urozmaicić i oprócz typowej textowej zabawy dodać jakies inventory i różne zakładki jako buttony w wpfie, ale chciałem ,żeby główna gra się skupiała na konsoli i tutaj chciałem zapytać czy da się tak zrobić aby stworzyć aplikację WPF i do jakiegoś textboxa wsadzić terminal konsoli?
Z góry dziękuje za wszelkie odpowiedzi.

2

Tylko czemu konsola miałaby być akurat w TextBoxie...? Nie wydaje ci się dziwne ładowanie konsoli do formatki...?
Czy nie lepiej zrobić oddzielne okienko konsoli i oddzielne okienko WPF z całą resztą?
Tu masz opisane jak zrobić projekt, który ma konsolę i okienko: http://stackoverflow.com/a/33441726

1

Zamiast pchać konsolę do aplikacji (i bawić się z całym przekierowaniem outputu itp) nie możesz po prostu napisać stylu dla textboxa, żeby miał wygląd konsoli i cieszyć się z funkcjonalności textboxa?

3

Wyjście jest przekierować dość łatwo:

using System.Text;
using System.Windows.Controls;
using System.IO;

namespace WpfApplication2
{
    class TextBoxWriter : TextWriter
    {
        public TextBoxWriter(TextBox aTextBox)
        {
            textBox = aTextBox;
        }

        public override void Write(char value)
        {
            textBox.Text += value;
        }

        public override Encoding Encoding
        {
            get { return Encoding.Unicode; }
        }

        TextBox textBox;
    }
}
using System;
using System.Text;
using System.Windows;
using System.Windows.Controls;

namespace WpfApplication2
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Console.SetOut(new TextBoxWriter(textBox1));
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Console.WriteLine("Ala ma kota.");
        }
    }
}

Ale nie podoba mi się to rozwiązanie ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1