自分ではやっていませんが、「時間があればやってみたい」企画の一つです。したがって、私はまだ既存の実装を探しています:-P
とにかくいくつかの考え:
ビジュアル (つまり、楕円、テキストブロック) を使用するアプローチは、おそらく良いアイデアではありません。200x100 文字が必要な場合に何が起こるかを考えてみてください。多分バックバッファですら。すべてをメモリに保持して描画する....信じられないほど遅くなります。
したがって、より良い(または正しい)アプローチは、「自分で描く」ことです。WPF はバックバッファリングされており、任意のビットマップを表示したくないため、最も可能性の高い方法は、新しい UserControl を作成し、その Paint-Method をオーバーライドすることです。Control から派生することを好むかもしれませんが、UserControl には Content が含まれている可能性があるため、内部に接続インジケーター アイコンのようなものを表示できます。
アーキテクチャに関しては、コンソール バッファ モデルを保持する依存プロパティBuffer ( ) を作成することをお勧めします。ConsoleBuffer
別の DP は、左上の位置( long
) を保持します。表示を開始する場所を決定します (後ろを見ている間)。char[]
コンソール モデルでは、aと a Color[]
(1 次元)を含むクラスを作成します。改行と\n
文字を使用して行を作成します (これはコンソールの文字であるため)。次に、コントロールのサイズを変更すると、バッファを再割り当てする必要なくリフローします。さまざまなサイズの **ConsoleBuffer** を操作できます (さまざまな数の後方文字用)。
ConsoleBuffer.Write(string s)
物事を行うためのあなたの方法です。
行を表すために配列の配列を保持することをお勧めしますchar[][]
....しかし、それはプログラミング中に見つけるまでです。