如何将自动生成的内容DataTemplate彼此对齐?

时间:2013-11-02 13:21:54

标签: c# xaml

我希望这些按钮彼此相邻而不是彼此之间

这是一个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>

1 个答案:

答案 0 :(得分:0)

您只需将ItemsControl中的默认ItemsPanel更改为水平导向的,这是一个示例:

<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)。

相关问题