Я пытаюсь создать таблицу квадратных кнопок в GTK # со следующими свойствами:
- Кнопки будут добавляться и удаляться по одной за раз.
- Кнопки должныразмещаться как текст на странице - слева направо до тех пор, пока больше не сможет поместиться в строку, а затем перенести на следующую строку.
- Если в окне больше кнопок, чем уместится, должен бытьвертикальная полоса прокрутки.
- Таблица должна быть изменяемого размера.Изменение размера должно перекомпоновывать кнопки по мере необходимости.
- Кнопки должны быть фиксированного размера.
Я начал пытаться использовать таблицу с Homogenous == true.Я добавил обработчик для SizeAllocated, и в нем я проверяю, достаточно ли изменилась ширина таблицы, чтобы добавить или удалить столбец.Если это так, я удалил все кнопки, обновил NColumns и снова прикрепил кнопки в нужных местах.Казалось, это сработало, но кнопки не были фиксированного размера - они расширялись, чтобы заполнить горизонтальное пространство.
Затем я попытался отключить гомогенный и установить предпочтительные размеры для кнопок.Незначительная проблема заключается в том, что в идеале я хочу разместить растровое изображение известного размера на каждой кнопке, и я хотел бы получить верный макет независимо от того, сколько пикселей кнопка добавляет вокруг растрового изображения, но я не уверен, как это выяснить.общий размер кнопок для моих расчетов.Более серьезная проблема заключается в том, что мое приложение теперь перерисовывается непоследовательно - иногда метки кнопок смещены или не отображаются вообще.Мне интересно, если это потому, что я меняю раскладку в ответ на неправильный сигнал.
Как мне сделать это вместо этого?Является ли Table правильным контейнером для работы?Есть ли что-то, что будет делать то, что я хочу из коробки?(Возможно, что-то более похожее на представление «значок» или «миниатюра» в файловом браузере?) Как правильно управлять макетом окна в ответ на изменения размера?