IRC チャット プログラムである最初の WPF アプリケーションを作成しています。私はWPFが初めてなので、メッセージをどのように表示すればよいかわかりません。メッセージには太字、イタリック体の単語、さらには画像が含まれている可能性があるか、終了メッセージが単純なメッセージとは異なる色になっている可能性があるためです。
ネットで検索していて、いくつかの解決策を見つけました。ソリューションの最初のタイプは、RichTextBox を FlowDocument または単純な FlowDocument と共に使用し、何らかの方法でバインディング システムをハックしてプロパティの値を表示することです。「ハッキング」とは、つまり、これらのコントロールは DependencyObject ではないため、バインディング プロパティを持たないということです。(これが正しい表現かどうかはわかりません)。
単純な TextBlock では、文字列の値を表示するため、メッセージを表示できません。単純な文字列に多くのメッセージがあり、それに新しいメッセージを追加すると、文字列を変更できないため、大量のメモリ コピーが必要になります。さらに、TextBlock を使用する場合、そのコンテンツをマウスで選択してコピーできますか? 読み取り専用の TextBox を使用する場合、たとえば 1 つの単語だけにスタイリングを使用できますか?
そのため、ListView またはリスト (または任意のコレクション) のコンテンツを表示できるものを使用し、そのテンプレートを変更して各メッセージを正しく表示しようとしています。(そしてListViewの選択を何らかの形で無効にします)しかし、メッセージをスタイリッシュに表示して選択可能にするために、どのコントロールを使用すればよいかわかりません。
リストを使用してメッセージを保存するのはクールです。1,000 件までのメッセージが表示された後、最初の 100 件を削除してログ ファイルに保存したいからです。
したがって、この問題を解決する方法について完全に混乱しています。誰かがこの種の問題に対する適切な解決策を持っていることを願っています!