C# 如何获取uniformgrid中的所有按钮并滚动查看它们?
我正在构建一个应用程序来显示安装在计算机中的所有软件,我已经有了所有的按钮来显示相应的图标,但是当我显示它们时,uniformgrid只显示适合窗口的按钮,我以为一个滚动条会显示它们,但是我到了窗口的末尾,按钮仍然不见了!我如何用滚动条显示它们? 以下是XAML代码:C# 如何获取uniformgrid中的所有按钮并滚动查看它们?,c#,wpf,C#,Wpf,我正在构建一个应用程序来显示安装在计算机中的所有软件,我已经有了所有的按钮来显示相应的图标,但是当我显示它们时,uniformgrid只显示适合窗口的按钮,我以为一个滚动条会显示它们,但是我到了窗口的末尾,按钮仍然不见了!我如何用滚动条显示它们? 以下是XAML代码: <Window x:Class="apple.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
<Window x:Class="apple.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow">
<Grid>
<DockPanel Name="dock">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<UniformGrid Name="gridx" DockPanel.Dock="Top" Rows="7" Columns="7">
</UniformGrid>
</ScrollViewer>
</DockPanel>
</Grid>
</Window>
以下是c#代码:
苹果名称空间
{
///
///MainWindow.xaml的交互逻辑
///
公共部分类主窗口:窗口
{
public string[]link=Directory.GetFiles(@“C:\ProgramData\Microsoft\Windows\Start Menu\Programs”、“*.lnk”、SearchOption.AllDirectories);
公共主窗口()
{
this.ResizeMode=ResizeMode.NoResize;
//this.WindowStyle=WindowStyle.None;
this.WindowState=WindowState.Maximized;
初始化组件();
masterGUI();
}
public-void-masterGUI()
{
gridx.Height=System.Windows.SystemParameters.PrimaryScreenHeight;
IconImage[]ico=null;
位图[]img=null;
string[]list=null;
列表=新字符串[link.Length];
ico=新图标[link.Length];
img=新位图[link.Length];
for(int n=0;n网格
和DockPanel
并设置UniformGrid.Rows
或UniformGrid.Columns
,而不是同时设置两者。您只需要窗口
、滚动查看器
和UniformGrid
:
<Window>
<ScrollViewer>
<UniformGrid Name="gridx" Columns="7"/>
</ScrollViewer>
</Window>
要以更惯用的WPF方式进行此操作,您应该有如下内容:
<Window>
<ScrollViewer>
<ItemsControl ItemsSource="{Binding Programs}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="7"/>
然后,您将从数据源中公开一个
程序
集合,从而自动为每个已安装的程序生成一个项目。非常感谢,有没有办法操纵按钮上背景的大小?
<Window>
<ScrollViewer>
<ItemsControl ItemsSource="{Binding Programs}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="7"/>