【问题标题】:Recommendations for painting a custom text viewer绘制自定义文本查看器的建议
【发布时间】:2012-12-10 03:22:17
【问题描述】:

我想为特定的只读文件格式开发一个文件查看程序,并且大部分情况下它只是可滚动的文本。最简单的方法当然是使用现有的文本显示控件,但我得出的结论是,我想要一种图形化的“自定义彩色突出显示”、文本着色,也许还有其他东西。所以我是打算自己处理这幅画。我认为尝试在标签或富文本框顶部排列我自己的图形是个坏主意,所以我打算只绘制除滚动条之外的所有内容......除非这些标签/富文本控件是以某种我不知道的方式更可扩展?

假设我走的是绘画路线,我不能 100% 确定具体细节。我是否直接在面板上绘画?还是有更好的 GUI 控件可以绘制?另外,我认为如果我不缓冲屏幕会更好,因为我认为在验证时重新绘制内容会很容易/有效......但是从缓冲区重新绘制可能会更快.. . 如果我只有一个屏幕缓冲区,它会为我省去很多麻烦吗……这是否效率很低?我的计划是直接在面板中绘画,无缓冲,是一个好主意,还是有我要放弃的首选方法?

【问题讨论】:

  • 您考虑过使用 RichTextBox 吗? stackoverflow.com/questions/2527700/…
  • 您仍然可以在 RichTextBox 上绘制“事物”...它只会为您省去很多麻烦来为您处理文本。 (请参阅GetPositionFromCharIndex 以帮助您入门)
  • 谢谢,GetPositionFromCharIndex 的存在意味着他们已经考虑过在 RichTextBox 上绘画的用例,并告诉我将绘图放置在哪里,所以我将尝试为 RichTextBox 覆盖 OnPaint。

标签: c# .net winforms paint


【解决方案1】:

尝试使用WebBrowser 控件或RichTextBox(从您的文本中格式化htmlrtf)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    相关资源
    最近更新 更多