2015-08-18 3 views
0

SOF Tribe,Windows Phone контейнер 8,1 потока для динамических кнопок

У меня есть запрос на идентичность контейнера потока, в котором я могу налить неопределенное количество динамически создаваемых кнопок XAML. Указанные кнопки должны максимально приблизить текст (я думаю, у меня есть шаблон для этого). Но кнопки должны обертываться как gridview, но работать как стековая панель. Кто-нибудь знает контейнер, который позволит мне выполнить то, что изображает изображение?

В настоящее время для существующего изображения ниже я использую gridview, но gridview задает определенную ширину, но неравномерно течет. Пакетная панель имеет желаемый стиль конца-конца, но не обертывается. Итак, какие-то идеи?

Auto wrapping flow container

ответ

2

Существует то, что называется UniversalWrapPanel сделал Грег Stoll. Итак, это направление, которое я буду принимать. Теперь, однако, у меня есть последняя битка. Как получить связанные данные для обеспечения способности родительского контейнера обернуть контент, а не просто складывать его в вертикальном столбце.

Ниже приведен XAML приведенный ниже результат изображения, который не совсем то, что я хочу. Статически добавленные кнопки отлично работают с UniversalWrapPanel. Но пытаясь заставить привязку и ItemsSource работать, ну, это уже вне меня в это время.

enter image description here

<support:UniversalWrapPanel Orientation="Horizontal" Background="White"> 
    <ItemsControl x:Name="GridViewRecipients" ItemsSource="{Binding}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Button Style="{StaticResource ButtonLozengeStyle}" Content="{Binding FullName}"/> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</support:UniversalWrapPanel> 

ОК, так что немного больше поиска, и я нашел это:

http://www.visuallylocated.com/post/2015/02/20/Creating-a-WrapPanel-for-your-Windows-Runtime-apps.aspx

и так вот правильный способ ссылки на UniversalWrapPanel в ItemsControl:

<ItemsControl x:Name="GridViewRecipients" ItemsSource="{Binding}"> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <support:UniversalWrapPanel Orientation="Horizontal" Background="DodgerBlue"/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Button Style="{StaticResource ButtonLozengeStyle}" Content="{Binding FullName}"/> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

. Результат:

enter image description here

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