Как равномерно расположить элементы в горизонтальном списке Silverlight - PullRequest
0 голосов
/ 11 декабря 2008

В Silverlight у меня есть вертикальный ListBox, который имеет горизонтальный ListBox для каждого элемента. Я хочу, чтобы элементы в HorizontalListbox располагались равномерно по ширине родительского (вертикального) ListBox. Как я могу это сделать?

   <ListBox x:Name="MachineListBox" Background="Green">
        <ListBox.ItemTemplate>
            <DataTemplate>
            <ListBox ItemsSource="{Binding CoilList}" Background="Red" HorizontalAlignment="Stretch">
                    <ListBox.ItemsPanel>
                        <ItemsPanelTemplate>
                        <StackPanel 
                            HorizontalAlignment="Stretch"  />
                    </ItemsPanelTemplate                                >
                            </ListBox.ItemsPanel>

                    <ListBox.ItemTemplate >
                       <DataTemplate>
                                <TextBlock
                                    Text="{Binding Coil}"
                                     HorizontalAlignment="Stretch"/>
                        </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </DataTemplate>
            </ListBox.ItemTemplate>
    </ListBox>

Ответы [ 2 ]

0 голосов
/ 11 декабря 2008

Я думаю, что оператор пропорционального определения размера сделает то, что вы ищете. Не пробовал, но это звучит как вариант. Ширина = "*" and Margin="2*".

0 голосов
/ 11 декабря 2008

Я позволю себе предложить вам использовать пользовательский элемент управления моего собственного изобретения. Он называется ProportionalPanel и делает то, что вам нужно - равномерно расставляет элементы. Вы можете использовать его для ItemsPanel во внутреннем ListBox вместо StackPanel. Я также предоставляю исходный код, так что вы можете настроить логику так, как вам нравится. Соответствующий пост в моем блоге здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...