В конкретном родительском элементе управления моей страницы я хочу расположить по горизонтали некоторые дочерние элементы управления (скажем, прямоугольники), чтобы каждый элемент управления имел одинаковую ширину и максимальную ширину.Это означает, что при наличии большого родительского элемента управления:
- , если имеется только один дочерний элемент управления, он не будет охватывать весь родительский элемент управления, но его ширина будет установлена на максимальную ширину.
- После добавления дочерних элементов управления в определенной точке сумма их максимальной ширины (которая одинакова для каждого дочернего элемента управления между прочим) будет больше родительской ширины.В этом случае общая ширина должна быть разделена на количество детей, и каждый ребенок получит этот результат.
Поскольку родительский элемент управления должен быть привязан к коллекции, я начал писать это:
<ItemsControl Margin="10" Height="200" ItemsSource="{Binding MyCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ChildShape />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Я быстро понял, что StackPanel - это не то, что мне нужно.
Конечная цель - создать хорошие анимации при добавлении или удалении дочернего элемента (другие дочерние элементы должны скользить и изменять свой размергладко.
Поскольку я новичок в Silverlight, я не вижу, какую панель (пользовательскую или нет?) мне следует использовать или как я могу добиться того, что я описал.