【问题标题】:Unexpected Behaviour ItemsControl Template/ItemTemplate意外行为 ItemsControl 模板/ItemTemplate
【发布时间】:2011-09-07 18:56:19
【问题描述】:

我想并排显示一个汇总列表,所以我创建了一个小的 ItemsControl 来实现这个目标:

    <ItemsControl x:Name="GRS">
        <ItemsControl.Template>
            <ControlTemplate>
                <StackPanel Orientation="Horizontal" Margin="10">
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="Round" FontSize="20" />
                        <TextBlock Text="Food" FontSize="20" />
                        <TextBlock Text="Harvest" FontSize="20" />
                        <TextBlock Text="State" FontSize="20" />
                        <TextBlock Text="Private" FontSize="20" />
                        <TextBlock Text="Value" FontSize="20" />
                        <TextBlock Text="Type" FontSize="20" />
                    </StackPanel>
                    <ItemsPresenter />
                </StackPanel>
            </ControlTemplate>
        </ItemsControl.Template>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Border Margin="10" BorderBrush="Black" BorderThickness="2">
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="{Binding Path=RoundNumber}" FontSize="20" />
                        <TextBlock Text="{Binding Path=PlayerAndModusSetting.FoodCost}" FontSize="20" />
                        <CheckBox IsChecked="{Binding Path=IsHarvest}" FontSize="20" />
                        <TextBlock Text="{Binding Path=PlayerAndModusSetting.StateBuildProject}" FontSize="20" />
                        <TextBlock Text="{Binding Path=PlayerAndModusSetting.PrivateBuildProject}" FontSize="20" />
                        <TextBlock Text="{Binding Path=Value}" FontSize="20" />
                        <TextBlock Text="{Binding Path=ShipType}" FontSize="20" />
                    </StackPanel>
                </Border>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

当我设置 ItemsSource 并运行时,结果是列表垂直而不是水平。

如你所见,第一个是并排的,但之后它继续向下,我不知道为什么。

谢谢。

【问题讨论】:

    标签: xaml itemscontrol stackpanel itemtemplate


    【解决方案1】:

    您的项目模板的父控件是 StackPanel - 每个项目都是 StackPanel,包含在 StackPanel 中 - 如果需要,您需要将 ItemsPresenter 周围的容器更改为 WrapPanel水平平铺。

    例子:

                    </StackPanel>
                    <WrapPanel>
                        <ItemsPresenter />
                    </WrapPanel>
                </StackPanel>
    

    【讨论】:

    • 那是不正确的。实现了相同的行为(只是对其进行了测试)。此外,stackpanel 的方向设置为水平,这意味着它应该水平扩展而不是垂直扩展(它对 ItemTemplate 中的整个内容执行此操作)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多