2013-11-02 4 views
1

я хочу, чтобы эти кнопки рядом друг с другом, а не друг под другомКак выровнять автоматически созданный контент DataTemplate рядом друг с другом?

это является MVVM, поэтому кнопки генерируются классом

 <ItemsControl ItemsSource="{Binding Pages}" Grid.Column="1"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <StackPanel> 
         <Button Margin="8" Content="{Binding Name}" Command="{Binding DataContext.ChangePageCommand, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" CommandParameter="{Binding}"/> 
        </StackPanel> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 

ответ

0

Вы просто должны изменить значение по умолчанию ItemsPanel от вашего ItemsControl в горизонтальной ориентированной один, вот пример:

<ItemsControl ...> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal"/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <Button Margin="8" Content="{Binding Name}" Command="{Binding DataContext.ChangePageCommand, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" CommandParameter="{Binding}"/> 
      </StackPanel> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

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

+0

это работает спасибо – denderp

+0

Добро пожаловать! Если вы считаете, что этот ответ решил проблему, отметьте ее как «принятую», нажав зеленую галочку. Это поможет будущим читателям найти то, что им нужно (и доверять ему), и поможет сосредоточиться на более старых вопросах, которые до сих пор не имеют ответов;) – AirL

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