c# - 填充网格,然后在 WPF 中向下扩展
问题描述
[在此处输入图像描述][1]我想制作一个应用程序,将文件夹中的所有文件显示为按钮,以便我可以从应用程序中打开它们。所以他们被动态添加。但我有一个问题:我需要像网格一样并排显示它们。如果文件超过 9 个,则需要向下滚动。我试过布局:
<Grid Name="buttonGrid">
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
<Grid Height="450" Width="800" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
</Grid>
</ScrollViewer>
</Grid>
和IC#:
public partial class PlayGame : Page
{
public PlayGame()
{
InitializeComponent();
AddButtons();
}
//Add buttons to grid
private void AddButtons()
{
var folderName = $"{AppDomain.CurrentDomain.BaseDirectory}games";
if (!Directory.Exists(folderName))
{
Directory.CreateDirectory(folderName);
}
var allFiles = Directory.GetFiles(folderName);
foreach (string fileName in allFiles)
{
var fi = new FileInfo(fileName);
Button newBtn = new Button
{
Content = fi.Name,
Name = "Button" + fi.Name.Replace(".", "_"),
BorderThickness = new Thickness(0)
};
Grid.SetRow(newBtn, 0);
Grid.SetColumn(newBtn, 0);
newBtn.Click += OpenFile;
buttonGrid.Children.Add(newBtn);
}
}
}
它部分工作......按钮被添加,它们工作,但它们相互堆叠。那么我该如何解决呢?
我想要这样:https ://i.stack.imgur.com/6EUKS.png 但是对于每个文件,动态地都有一个文件夹。如果有超过 9 个文件向下扩展,那么滚动查看器就会起作用。
解决方案
尝试使用
<ScrollViewer Height="300">
<WrapPanel Name="listView" Orientation="Horizontal">
</WrapPanel>
</ScrollViewer>
推荐阅读
- c# - Net Core 3:使用 OData 应用 Automapper,ProjectTo 没有重载需要 0 个参数
- node.js - 如何调试“构建”的生产 NodeJS
- powershell - 如何使用 innoSetup 执行 PowerShell 脚本
- php - null 安全运算符如何在 php 8 中工作?
- youtube-api - 延长 YouTube 数据 API 的配额需要多少费用
- image - 如何跟踪/勾勒图像中的对象?
- ms-access - 访问显示一个名称的多个记录
- nasm - 在 nasm 中编译 16 位 (8086code) 的语法
- javascript - Tailwind CSS 水平溢出换行
- r - 有什么方法可以从 R 中的数据框的列中拆分键和值,并将键附加为数据框每一行的列名称和值?