gpt4 book ai didi

WPF 滚动统一网格

转载 作者:行者123 更新时间:2023-12-04 14:29:27 24 4
gpt4 key购买 nike

我需要显示位于特定路径中的所有文件。我创建了一个用户控件,其中包含文件详细信息(名称、大小、扩展名等)的文本 block ,该控件将是统一网格的子控件。

问题是,如果我的 uniformgrid 是 5x5,并且我有超过 25 个文件,则不会显示第 26 个元素。

我想知道,有没有办法滚动统一网格的内容?

我知道我可以使用列表框和绑定(bind)(我仍在阅读它),但我需要以编程方式添加控件,因为控件有一个事件,并且当用户控件的新实例时我订阅它被创建然后添加到子数组中。

我看过this发布后,我已经将 uniforgrid 放在了 ItemsControl 中,但它根本不起作用,这是我的 xaml:

<ScrollViewer Grid.Column="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" >
<ItemsControl x:Name="gridArchivos">
<ItemsControl.ItemsPanel >
<ItemsPanelTemplate >
<UniformGrid Columns="5" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>

根据帖子,只需要指定列或行,而不是两者。所以,只有 5 列。
我不想要水平滚动,只想要垂直滚动。

谢谢你的时间。

最佳答案

我复制了你的 Xaml它似乎按预期工作

这是我的测试代码,它可以帮助您诊断问题

xml:

<Window x:Class="WpfApplication7.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Name="UI">
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" >
<ItemsControl ItemsSource="{Binding Items, ElementName=UI}">
<ItemsControl.ItemsPanel >
<ItemsPanelTemplate >
<UniformGrid Columns="5" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
</Window>

代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
for (int i = 0; i < 1000; i++)
{
Items.Add("Stackoverflow"+i);
}
}

private ObservableCollection<string> items = new ObservableCollection<string>();
public ObservableCollection<string> Items
{
get { return items; }
set { items = value; }
}
}

结果:

enter image description here

关于WPF 滚动统一网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17583278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com