У меня есть приложение, которое отображает рейтинговые таблицы для спортивных лиг. Эти таблицы в основном представляют собой сетки с различными столбцами, представляющими статистику для каждой команды, такую как сыгранные, выигранные, проигранные матчи, забитые и забитые голы и т. д. Таким образом, таблица лиг имеет одно интересное свойство: для данного соревнования у нас всегда есть одна и та же сумма. рядов (представляющих команды). Поскольку элементы управления WPF не имеют внешнего вида, я, вероятно, мог бы использовать ListBox, ListView, ItemsControl напрямую или даже DataGrid. Не должно иметь большого значения.
Однако я хочу чего-то, чего мне пока не удалось добиться: учитывая размер таблицы (на практике размер окна), ВСЕ команды должны быть видны всегда (без вертикальной прокрутки), все столбцы статистики (как выбранный пользователем) должен быть виден, и размер шрифта должен отражать это, чтобы он был как можно больше, но ни один столбец не становился слишком большим для размещения содержимого.
Я могу легко использовать UniformGrid для достижения части без вертикальной прокрутки. Однако настроить размер шрифта не так просто.
Существует, конечно, ViewBox, который позволяет содержимому каждой ячейки таблицы индивидуально изменять свой размер, чтобы быть максимально большим, но это, возможно, приведет к уродству, поскольку вы получите кучу ячеек с разными размерами.
Я не ожидаю получить простой ответ на этот вопрос, но если это вообще возможно, я хотел бы услышать об этом. В итоге:
Размер таблицы должен изменяться вместе с окном, при этом все данные всегда должны отображаться без полос прокрутки.
Размер шрифта должен быть установлен на максимально возможный размер, чтобы в каждом столбце каждой строки отображалось все его содержимое.
Все столбцы должны иметь наименьший возможный размер, позволяющий видеть все содержимое, за исключением одного столбца, который использует «*-sizing», чтобы занять оставшееся пространство.
Итак.. Любые умные способы сделать это? :)