1

我希望这些按钮彼此相邻而不是彼此下方

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

1 回答 1

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

于 2013-11-02T13:36:07.107 回答