2010-10-21 2 views
0
<DataTemplate x:Key="dirtSimple"> 
     <TextBlock Margin="10,0,0,0" Text="{Binding Path=CurrentBook.Published, StringFormat=d}"></TextBlock> 
    </DataTemplate> 

    <ControlTemplate x:Key="lbWrapPanelTemplate"> 
     <StackPanel Orientation="Horizontal" Margin="2" Background="Aqua"> 
      <ItemsPresenter></ItemsPresenter> 
     </StackPanel> 
    </ControlTemplate> 

...Silverlight 4 - простой шаблон управления

<ListBox Template="{StaticResource lbWrapPanelTemplate}" x:Name="bookListBox" Grid.Row="0" ItemsSource="{Binding Path=BookSource}" ItemTemplate="{StaticResource dirtSimple}" > 
    </ListBox> 

Раскрывающийся список отображения правильно, с прекрасным «Аква» фона, и каждый элемент муторно отображается только с датой. По какой-то причине элементы не течет горизонтально. Первоначально я попробовал его с помощью WrapPanel Silverlight Toolkit с той же проблемой, но я даже не могу заставить его работать со встроенным StackPanel, поэтому я подозреваю, что у меня что-то не хватает.

ответ

1

Вы пытаетесь получить поведение на основе выбора, которое предоставляет ListBox? Если нет, используйте ItemControl (и поставьте ItemsPanel, как показано ниже).

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

Что вы должны указать значение для ItemsPanel следующим образом:

<ListBox ItemTemplate="{StaticResource dirtSimple}"> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal" /> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
</ListBox> 
+0

Спасибо за ответ - время для еще одного? http://stackoverflow.com/questions/3991759/silverlight-itemspanel-wrappanel –

Смежные вопросы