Есть ли хороший способ ограничить автоматическую ширину элемента или столбца сетки? Я хочу ограничить только автоматическую ширину, но разрешить любые изменения пользователя.
Например, я хочу разрешить GridSplitter произвольно изменять размер столбца, но начальная (автоматическая) ширина не должна превышать определенного значения. То же самое для элементов - я хочу разрешить изменение размера, но ограничить ширину, которую они имеют, если размер никогда не изменялся.
MaxWidth работает точно так же - он не влияет на автоматическую ширину столбцов сетки (это может быть ошибкой), но ограничивает ширину измененного размера.
Есть ли хорошее решение, которое работает (почти) с любым элементом или частью сетки?





Попробуйте привязать MaxWidth к Width и используйте IValueConverter, чтобы реагировать на изменения от Auto к определенным значениям.
К сожалению, это вызывает проблему - пользователь не может изменить размер элемента, если он уже не изменил размер элемента.
Поскольку это одноразовая вещь, вы также можете попробовать отреагировать на GridSplitter.Click и отключить MaxWidth в тот момент, когда пользователи начинают перетаскивание.
В столбце сетки установите ширину, с которой столбец должен начинаться. Любые изменения ширины столбца, сделанные пользователем с помощью разделителя сетки, перезапишут ширину, с которой вы начали.
Так что в основном используйте MaxWidth, но удалите его, как только Width перестанет быть Auto? Очень хорошая идея - спасибо.