【发布时间】:2009-06-30 11:17:02
【问题描述】:
我有一个 GTK# 文本视图,其中打开了自动换行和滚动条。我知道不会显示水平滚动条,因为文字会换行。
我想添加一些文本,但在添加之前我想确定文本是否适合而不需要垂直滚动条。
如果这意味着文本视图需要垂直滚动条,我不想添加文本。
我该怎么做?
【问题讨论】:
我有一个 GTK# 文本视图,其中打开了自动换行和滚动条。我知道不会显示水平滚动条,因为文字会换行。
我想添加一些文本,但在添加之前我想确定文本是否适合而不需要垂直滚动条。
如果这意味着文本视图需要垂直滚动条,我不想添加文本。
我该怎么做?
【问题讨论】:
我不知道有什么方法可以在不实际更新文本的情况下测量 TextView 的内容。它是一个复杂的文本布局小部件,可以处理格式化文本、图像等。插入文本可能会相当大地改变布局,因此您无法“预测”一些新文本将如何改变大小而不实际修改缓冲区并重新计算其布局.
如果您解释为什么需要此功能,建议解决方案会更容易。
例如,如果您只需要知道在添加文本后视图何时会有滚动条,您可以使用滚动调整 - TextView 是一个“可滚动”小部件,即它的布局空间是虚拟化,并由父 ScrolledWindow 通过包含范围、页面大小、滚动增量大小等的“调整”对象进行操作。您可以通过从 ScrolledWindow 访问它们并订阅它们的更改事件来检测它们何时更改。
【讨论】: