自适应面板将内容分成几列

我将居中的垂直堆栈面板居中放置在scrollviewer中,它显示了我的UI控件的动态集合:按钮/文本框/标签等,但是左右两边的可用空间很大。

我想简单:如果内容不可见(垂直滚动条可见),只需将其分成两列即可。

我尝试了以下代码:

<ScrollViewer Name="scroller"
          VerticalScrollBarVisibility="Auto"
          PanningMode="VerticalOnly"
          CanContentScroll="True"
          >
    <ItemsControl x:Name="StreamsItemsControl" ItemsSource="{Binding UIControls}">
        <ItemsControl.ItemsPanel>
            <itemspaneltemplate>
                <UniformGrid Name="uniGrid1">
                    <UniformGrid.Style>
                        <Style TargetType="UniformGrid">
                            <Setter Property="Columns" Value="1"/>
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding ComputedVerticalScrollBarVisibility,ElementName=scroller}" Value="Visible">
                                    <Setter Property="Columns" Value="2"/>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </UniformGrid.Style>
                </UniformGrid>
            </itemspaneltemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
</ScrollViewer>

它可以完美工作,但有一件事情-它为每个UI控件都提供了巨大的单元格,但并不是每个人都需要它(例如,标签/文本块)。 这是统一网格的特征-所有单元的大小均相等。

有什么方法可以像stackpanel一样吗? (每个孩子都得到了他的空间,没有了)

underthesun2008 回答:自适应面板将内容分成几列

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3012439.html

大家都在问