Будет ли текст помещаться в GTK # TextView без полосы прокрутки - PullRequest
1 голос
/ 30 июня 2009

У меня есть текстовое представление GTK # с включенными переносом слов и полосами прокрутки. Я знаю, что горизонтальные полосы прокрутки не будут отображаться, потому что вместо них будут переноситься слова.

Я хочу добавить текст, но прежде чем добавить его, я хочу выяснить, подойдет ли текст без вертикальной полосы прокрутки.

Я не хочу добавлять текст, если это означает, что для представления текста потребуется вертикальная полоса прокрутки.

Как мне это сделать?

1 Ответ

3 голосов
/ 30 июня 2009

Я не знаю ни одного способа измерить содержимое TextView без фактического обновления текста. Это сложный виджет текстового макета, который может обрабатывать форматированный текст, изображения и т. Д. Вставка текста может существенно изменить макет, поэтому вы не можете «предсказать», как какой-то новый текст изменит размер без фактического изменения буфера и пересчета его макета. .

Было бы проще предложить решение, если бы вы объяснили, зачем вам эта функция.

Например, если вам просто нужно знать после добавления текста о том, когда у представления будут полосы прокрутки, вы можете использовать настройки прокрутки - TextView - это виджет с «прокруткой», то есть его пространство раскладок виртуализировано. и управляется родительским ScrolledWindow через объекты «Adjustment», которые содержат диапазон, размер страницы, размер приращения прокрутки и т. д. Вы можете обнаружить их изменение, открыв их из ScrolledWindow и подписавшись на их события изменения.

...