StackPanel方向在ItemsControl上不完全水平

时间:2012-08-28 16:16:53

标签: wpf xaml layout itemscontrol stackpanel

我有以下问题。 我正在使用Items控件,我不明白为什么我的结果是在几行而不是在一行上。 这是我的代码:

<StackPanel Orientation="Horizontal" Margin="10,10,10,10">
    <ItemsControl ItemsSource="{Binding Countries}" >
        <ItemsControl.ItemTemplate>
            <DataTemplate x:Name="TabCountries" >
                <StackPanel Orientation="Horizontal">
                    <TextBlock Name="Country" Text="{Binding nom}" Style="{StaticResource whiteFontColor}" VerticalAlignment="Center" Margin="0,0,5,0"/>
                    <CheckBox Margin="0,0,5,0" Name="isCountryAllowed" IsChecked="{Binding isAllowed}" />
                </StackPanel>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>

结果是这样的:

FR
BE
AN

而不是那样:

FR BE AN ...

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

您没有更改项目的布局,只更改了ItemsControl的整体布局(如果同一StackPanel中没有其他元素,则几乎没有任何内容。)

使用ItemsControl.ItemsPanel水平制作项目布局。

<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"/>
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>