Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF WrapPanel和Scroll视图仅当其中的元素达到某个总数时才显示_Wpf_Xaml - Fatal编程技术网

WPF WrapPanel和Scroll视图仅当其中的元素达到某个总数时才显示

WPF WrapPanel和Scroll视图仅当其中的元素达到某个总数时才显示,wpf,xaml,Wpf,Xaml,我在ScrollViewer中有一个WrapPanel。我测量了我的布局,如果6个按钮只能放在1920宽的窗户上的固定区域。但我现在想要的是,如果页面上有6个以上的按钮,我希望滚动查看器显示并水平滚动 我想要的布局是初始布局为6个按钮。 2行x每行3行。如果有6个以上,则“下一步”按钮将显示在可滚动区域,触发滚动视图显示。 我想我可能需要动态创建带有6个按钮的“组”的StackPanel。如果创建的按钮数量大于6,则动态创建一个新的StackPanel,并在其中添加下一个由6个按钮组成的“组”,

我在ScrollViewer中有一个WrapPanel。我测量了我的布局,如果6个按钮只能放在1920宽的窗户上的固定区域。但我现在想要的是,如果页面上有6个以上的按钮,我希望滚动查看器显示并水平滚动

我想要的布局是初始布局为6个按钮。 2行x每行3行。如果有6个以上,则“下一步”按钮将显示在可滚动区域,触发滚动视图显示。 我想我可能需要动态创建带有6个按钮的“组”的StackPanel。如果创建的按钮数量大于6,则动态创建一个新的StackPanel,并在其中添加下一个由6个按钮组成的“组”,然后将新的StackPanel添加到ScrollViewer。我的假设正确吗?或者有更有效的方法来实现这一点吗

(注意):我刚刚发现我不能向ScrollViewer添加多个StackPanel。那么,有没有更好的方法

我将如何实现这一点

这是我当前的XAML布局和WrapPanel

<ScrollViewer Margin="0,100,0,0" Height="750" HorizontalScrollBarVisibility="Auto" Width="1920">
        <WrapPanel x:Name="stkPnlProductCategories" Height="Auto" Width="1920">

        <!-- This is filled in dynamically at runtime
            <controls:btnLarge Height="325" Width="500" Margin="20,0" TitleText="My Title" NoteText="" ShowNote="Collapsed" ShowSubTitle="Collapsed"/>
        -->

        </WrapPanel>
    </ScrollViewer>

好的,所以不要将
设置为固定宽度,而是使用一些适应性强的工具,例如

<StackPanel Orientation="Horizontal"></StackPanel>
或另一个
StackPanel

<ScrollViewer>
  <StackPanel Orientation="Vertical">
    <StackPanel Orientation="Horizontal"></StackPanel>
    <StackPanel Orientation="Horizontal"></StackPanel>
  </StackPanel>
</ScrollViewer>


你能绑定到一个项目吗?依靠你的按钮,如果>6,在ScrollViewer上,像VerticalScrollbarVisibility一样从禁用的
更改为真的
吗?我尝试使用StackPanel,我所有的按钮都水平排列,没有包装,只是从窗口的一侧跑掉了。我会试着把那些上的宽度去掉,然后跟着窗户的宽度走。我可能也要做上面克里斯建议的组合。嗯。这将是一个有趣的尝试。我的印象是,如果有六个以上的按钮,你希望按钮从窗口边缘脱落,并且你希望能够滚动查看它们。是吗?哦,我明白你的意思了。我会用我想要实现的截图更新我的问题。或多或少我希望6个按钮显示在网格中,每行2行x 3,如果按钮数量大于6,那么我希望其他按钮或多或少显示在溢出的滚动区域中。现在我想了想,如果按钮数大于6,我可能需要动态创建单独的StackPanel。所以您不想水平滚动以查看额外的按钮吗?你只是想要越来越多的3个按钮行吗?我不明白你想做什么,以及它与水平滚动的关系。
<ScrollViewer>
  <StackPanel Orientation="Vertical">
    <StackPanel Orientation="Horizontal"></StackPanel>
    <StackPanel Orientation="Horizontal"></StackPanel>
  </StackPanel>
</ScrollViewer>