我想创建将包含UniformGridWindowsFormsHosts(它们里面是WinForms)。每行有4个主机(4个列),并且在超出其可见容量后,将在下面添加新元素,并且用户可以滚动UniformGrid。除了定义UniFormGrid及其列号之外,我什至不知道从哪里开始。

 <UniformGrid x:Name="Grid"  Columns="4">

    </UniformGrid>


我希望得到的行为就像在Windows的资源管理器中一样,如果视图中有太多图标可以向下滚动。

我使用UniformGrid是因为我需要在Java中等效于GridLayout()。我希望每个添加的元素都具有相同的大小。我从.cs添加元素。

最佳答案

我将根据评论内容进行扩展,具体取决于您WinForm控件的大小,以及所需的调整大小行为,您也许可以将WrapPanel简单地包装在,例如:

    <ScrollViewer>
        <WrapPanel>
            <Grid Width="100" Height="100" Background="Red"/>
            <Grid Width="100" Height="100" Background="Blue"/>
            <Grid Width="100" Height="100" Background="Yellow"/>
            <Grid Width="100" Height="100" Background="Red"/>
            <Grid Width="100" Height="100" Background="Blue"/>
            <Grid Width="100" Height="100" Background="Yellow"/>
            <Grid Width="100" Height="100" Background="Red"/>
            <Grid Width="100" Height="100" Background="Blue"/>
            <Grid Width="100" Height="100" Background="Yellow"/>
        </WrapPanel>
    </ScrollViewer>




为了获得更大的灵活性, this answer链接到提供ScrollViewer的项目,值得一看。

关于c# - 在元素超出行数限制后,如何在XAML中使用自动滚动创建UniformGrid,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20928571/

10-13 06:57