【问题标题】:WPF ItemsControl layout issueWPF ItemsControl 布局问题
【发布时间】:2013-11-09 11:16:52
【问题描述】:

我有以下 XAML,它会产生几个 TextBlocks 和 ListBoxes 的垂直输出,但是我想更改它以使其水平输出。

<StackPanel>
    <TextBlock Margin="5" Text="Collated Results" FontWeight="Bold"
               VerticalAlignment="Center" DockPanel.Dock="Top"/>
    <ScrollViewer VerticalScrollBarVisibility="Auto" 
                  HorizontalScrollBarVisibility="Auto" CanContentScroll="True">
        <ItemsControl x:Name="lstCollatedSensorData">
            <ItemsControl.ItemTemplate>
                <DataTemplate>                                        
                    <StackPanel>
                        <TextBlock Margin="5" Width="100" Text="{Binding Name}"/>
                        <ListBox Margin="5" Width="100" 
                                 ItemsSource="{Binding CollatedResults}"/>
                    </StackPanel>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </ScrollViewer>
</StackPanel>

StackPanel 中的文本框和列表框分别正确显示,但是,每次迭代都放在彼此的顶部,我希望它们水平并排放置。我曾尝试在不同的位置插入 WrapPanels,但没有成功,所以显然我缺少一些东西。似乎 ScrollViewer 迫使 ItemsControl 垂直而不是水平。

【问题讨论】:

标签: c# wpf xaml


【解决方案1】:

ItemsControlItemsPanel中放置一个水平方向的stackpanel

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

【讨论】:

    【解决方案2】:

    尝试像这样在堆栈面板上设置方向

    StackPanel Orientation="Horizo​​ntal"

    【讨论】:

    • 请看我用粗体突出显示的内容(不是堆栈面板)
    猜你喜欢
    • 2013-02-17
    • 2010-11-19
    • 2011-04-24
    • 2011-01-22
    • 2011-03-10
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多