Wrap Panel - это не упаковка DataItems - PullRequest
1 голос
/ 05 августа 2011

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

<toolkit:WrapPanel>

    <ItemsControl x:Name="AnswerListBox" ItemsSource="{Binding Answers}" ScrollViewer.VerticalScrollBarVisibility="Disabled" >
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <!-- those don't wrap horizontally and go downwards -->
                <local:spriteToggleButton Text="{Binding text}" Selected="{Binding selected}" Sprites="{Binding Path=DataContext.UISprites, ElementName=questionField}" IsChecked="{Binding selected, Mode=TwoWay}" GroupName="{Binding Path=DataContext.QuestionTitle, ElementName=questionField}" ClickMode="Press" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

</toolkit:WrapPanel>

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

<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <toolkit:WrapPanel />
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>

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

1 Ответ

1 голос
/ 06 августа 2011

Иосиф

Немного стрельба в темноте здесь; но именно так я использовал WrapPanel (а не через ItemControl).

<ListBox> 
   <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
             <toolkit:WrapPanel Width="700" />
        </ItemsPanelTemplate>
   </ListBox.ItemsPanel>
   <ListBox.ItemTemplate>
         <DataTemplate>
         ....
         </DataTemplate>
   </ListBox.ItemTemplate>
</ListBox>

По сути, ItemsPanel Listbox говорит ему использовать WrapPanel, и тогда у вас может быть все, что вам нужно в DataTemplate. Обратите внимание, что ширина важна, так как она сообщает WrapPanel, где начинать перенос.

Помогает ли это?

...