Как я могу заставить дочерние элементы моего WrapPanel занимать равные пропорции доступной ширины?

Я пытаюсь создать пользовательский элемент управления, который работает с разной шириной. Одним из направлений этой цели является быстрое переключение с двух столбцов на один при уменьшении ширины. WrapPanel позволяет это легко.

Однако одна проблема с WrapPanel заключается в том, что теперь у меня нет возможности указать, что каждый из столбцов должен (при отображении рядом) занимать 50% доступной ширины. Если бы я использовал сетку, я мог бы указать, что каждый столбец должен иметь ширину «1 *» — как я могу добиться того же результата, не жертвуя отзывчивостью WrapPanel?

(Этот вопрос похож, но я попробовал подход без успеха. Я думаю, что это относится именно к WrapPanels как к дочерним элементам, а не к родительским элементам.)


person Tom Wright    schedule 24.01.2014    source источник
comment
Ваша программа решает, когда переключаться, например. От 3 до 2 столбцов в зависимости от общей ширины, или переключение должно происходить автоматически в зависимости от ширины каждого элемента?   -  person Sphinxxx    schedule 24.01.2014
comment
В идеале переключение должно быть автоматическим, как это делает WrapPanel.   -  person Tom Wright    schedule 27.01.2014
comment
Хорошо, это будет более сложный вариант, тем более что вы хотите, чтобы ваши элементы занимали всю доступную ширину. Однако, если бы вы могли найти способ позволить вашей программе решать, когда переключать количество столбцов, вы довольно легко получите желаемое поведение, используя UniformGrid и настраивая его свойство Columns.   -  person Sphinxxx    schedule 28.01.2014
comment
Очень поздно на вечеринку, но проверьте принятый ответ на этот вопрос   -  person mcalex    schedule 23.03.2020