У меня есть рекурсивно определить пользовательский элемент управления, который нуждается следующие свойства:среди связанных с стека панели проклейки
Есть две колонки
первый содержит одну рамку вокруг некоторого текста
второй столбец содержит стек из этих же типов элементов управления (рекурсивная часть)
, если поле в первом столбце короче, чем общая высота штабелированных коробок во втором столбце, поле должно расширяться, чтобы сделать оба столбца s высота.
Если общая высота второго столбца короче, чем поле в первом столбце, то последний элемент в стеке второго столбца должен расширяться, чтобы они были одинаковой высоты.
так, например, он может выглядеть следующим образом:
Хорошо, до сих пор, что я сделал, это создать горизонтальный стек панели, где первый элемент является док-панель, содержащая границу и текст ... второй столбец представляет собой вертикальный стек панель связан с подсписком, создавая рекурсивное пользовательский элемент управления ... как это ..
<StackPanel Orientation="Horizontal" Background="AliceBlue">
<local:TMRequirementView Requirement="{Binding Baseline}" />
<StackPanel Orientation="Vertical">
<ItemsControl ItemsSource="{Binding Requirements}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:TMGridView Baseline="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
Если требование выглядит следующим образом:
<DockPanel>
<Border MinHeight="50"
BorderBrush="Black" BorderThickness="2">
<TextBlock Text="{Binding Description}"
TextWrapping="Wrap" Background="Transparent" Height="Auto" />
</Border>
</DockPanel>
Теперь это отлично работает, если столбец со штабелями выше, но он не работает, если первый столбец выше, и я получаю пробелы. Любая идея, как справиться с этой взаимной зависимостью от высоты?
Update: Так, добавив рамку вокруг нужных колонн укладывают панель, я был в состоянии видеть, что StackPanel на самом деле получить изменения мин-высота. Однако, несмотря на то, что было место для расширения, дети панели стека автоматически не обновлялись. Если я исправляю минимальную высоту панели стека перед рукой на что-то большое, дети заполняются. Мне нужно выяснить, как обновить высоту ребенка, исходя из изменений на минимальной высоте панели стека.
Так что я подумал, может быть, установив параметр minheight второго столбца столбца на первый параметр высоты столбцов, но он пожаловался ... на любые идеи? – tbischel
команда высоты может быть NaN, я пытался привязать к свойству ActualHeight, но безрезультатно. – tbischel