我正在创建我的第一个 WPF 应用程序,它是一个 IRC 聊天程序。由于我是 WPF 的新手,我真的不知道应该如何显示这些消息,因为它们可以包含粗体、斜体字甚至图像,或者退出消息具有其他颜色而不是简单消息。
我在网上搜索,我找到了一些解决方案。第一种解决方案是使用带有 FlowDocument 的 RichTextBox 或仅使用简单的 FlowDocument 并以某种方式破解它们的绑定系统以显示属性的值。关于“黑客”,我的意思是,这些控件没有绑定属性,因为它们不是 DependencyObjects。(我不确定这是正确的表达方式)。
在一个简单的 TextBlock 中,我无法显示消息,因为它显示了字符串的值。在一个简单的字符串中包含大量消息并向其添加新消息后,需要大量内存副本,因为无法修改字符串。此外,如果我使用 TextBlock,那么我可以用鼠标选择它的内容以从中复制吗?如果我使用只读文本框,那么我可以只对一个单词使用样式吗?
所以我准备使用 ListView 或可以显示 List(或任何集合)内容的东西,然后修改其模板以正确显示每条消息。(并以某种方式禁用 ListView 的选择)但我不知道应该使用什么控件来控制消息以显示它们的时尚并使其可选择。
使用列表来存储消息会很酷,因为在大约 1000 条消息之后,我想删除前 100 条消息以将它们保存在日志文件中。
所以我完全不知道如何解决这个问题。我希望有人会为这类问题提供适当的解决方案!