Панель переноса, где элементы в строке имеют общую высоту

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

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

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

Кстати, эти «квадраты» — это просто пользовательские элементы управления или шаблон данных, примененный к источнику элементов списка. Могу ли я использовать ту же привязку на оберточной панели, может быть, мне нужно выбрать другое решение?

Спасибо


person AltControl    schedule 26.02.2011    source источник


Ответы (1)


вы можете попробовать поместить каждый «прямоугольник» в сетку с одной строкой и одним столбцом, а затем использовать SharedSizeGroup в RowDefinition. Не забудьте также указать Grid.IsSharedSizeScope="True" в контейнере:

    <WrapPanel Grid.IsSharedSizeScope="True">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition SharedSizeGroup="Group1" />
            </Grid.RowDefinitions>
            <Button Height="40" Content="Hello" />
        </Grid>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition SharedSizeGroup="Group1" />
            </Grid.RowDefinitions>
            <Button Content="Hello2" />
        </Grid>
    </WrapPanel>
person Elad Katz    schedule 26.02.2011