这可能是一个愚蠢的问题,但我坚持这样做 :(。我有一个网格和 3 列。我在这 3 列的每一列中都有一个文本框和一个列表框,如图所示:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"></ColumnDefinition>
<ColumnDefinition Width="380"></ColumnDefinition>
<ColumnDefinition Width="146"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Grid.Column="0" Grid.Row="0">
<TextBox Text="File Name" Height="30"></TextBox>
</StackPanel>
<StackPanel Grid.Column="1" Grid.Row="0">
<TextBox Text="File Path" Height="30"></TextBox>
</StackPanel>
<StackPanel Grid.Column="2" Grid.Row="0">
<TextBox Text="File Size" Height="30"></TextBox>
</StackPanel>
<StackPanel Grid.Column="0">
<ListBox Name="listbox_name" Margin="1,30" Height="276" />
</StackPanel>
<StackPanel Grid.Column="1">
<ListBox Name="listbox_path" Margin="1,30" Height="276" />
</StackPanel>
<StackPanel Grid.Column="2">
<ListBox Name="listbox_size" Margin="1,30" Height="276" />
</StackPanel>
及其背后的代码:
public Window1()
{
InitializeComponent();
list.Add("D:\\a\\hy");
list.Add("D:\\a\\hy1");
list.Sort();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
listbox_name.ItemsSource = list;
grid1.Visibility = Visibility.Hidden;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
grid1.Visibility = Visibility.Visible;
}
但是在单击按钮时,我无法看到显示列表的列表框。请指导我哪里出错了。谢谢!
最佳答案
原因是你的stackPanel
在Grid.Col="0"
里面,而且很小。但是 ListBox
位于您的 stackPanel
中。它有一定的余量,并且会下降。您是否看不到您的 listBox
。
如果你会做这样的事情:
<StackPanel Margin="0,0,0,-279">
<ListBox Name="listbox_name" Margin="1,30" Height="276" />
</StackPanel>
您将看到您的列表框,它会起作用。
注意:此代码只是示例。你需要为你的窗口做一个更好的布局。
这是我制作窗口布局的方法:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="678" Loaded="Window_Loaded">
<Grid Name="grid1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"></ColumnDefinition>
<ColumnDefinition Width="380"></ColumnDefinition>
<ColumnDefinition Width="146"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="File Name" Grid.Row="0" Grid.Column="0" Margin="5" />
<TextBlock Text="File Path" Grid.Row="0" Grid.Column="1" Margin="5" />
<TextBlock Text="File Size" Grid.Row="0" Grid.Column="2" Margin="5" />
<ListBox Name="listbox_name" Grid.Row="1" Grid.Column="0" BorderBrush="Black" />
<ListBox Name="listbox_path" Grid.Row="1" Grid.Column="1" BorderBrush="Black" />
<ListBox Name="listbox_size" Grid.Row="1" Grid.Column="2" BorderBrush="Black" />
</Grid>
</Window>
关于c# - 在网格中显示列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7783059/