Wpf - 使用行和列定义的网格 - 如何忽略某些行的列

时间:2016-04-04 09:49:22

标签: wpf xaml listview grid-layout groupbox

我试图在我的wpf应用程序中使用网格行/列定义。目前,我需要在GroupBox中实现列表视图。在这里,我需要忽略我在视图顶部设置的列定义。

行和列定义:

        <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="260" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="250" />
        <ColumnDefinition Width="20" />
        <ColumnDefinition Width="180" />
        <ColumnDefinition Width="20" />
        <ColumnDefinition Width="180" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

在这里你看到我有一个高度为260的rowDefinition。这应该包含我的列表视图。问题在于它在我制作的列中,因此它不会占用所有空间。是否有某种设置,以便该行将忽略我设置的列?我仍然希望将列用于其他行。

在这里,您可以看到它的外观图片:

enter image description here

希望有人可以帮助,美好的一天。

3 个答案:

答案 0 :(得分:4)

只需使用附加财产Grid.ColumnSpan

<ListView Grid.ColumnSpan="6"/>

它会将您的ListView扩展为6列。

有关您的用户界面的简单建议:

我建议你创建可调整大小的XAML,而不是静态的。我的意思是它不好:

<Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="260" />
    <RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="250" />
    <ColumnDefinition Width="20" />
    <ColumnDefinition Width="180" />
    <ColumnDefinition Width="20" />
    <ColumnDefinition Width="180" />
    <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

然而,它更好:

<Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="3*" />
    <RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="0.5*" />
    <ColumnDefinition Width="2*" />
    <ColumnDefinition Width="0.5*" />
    <ColumnDefinition Width="2*" />
    <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

它可以在任何显示屏上显示可调整大小的UI(XAML)。

答案 1 :(得分:1)

您可以在列表视图中设置Grid.ColumnSpan="6"。它会在行中扩展。

<ListView Grid.ColumnSpan="6"/>

答案 2 :(得分:1)

取决于您希望如何显示列表视图。

为了安全起见,您可以添加另一个网格,以便稍后在该行添加内容。

<Grid grid.Row="6" Grid.Column="0" Grid.ColumnSpan="6">
  <ListView> </ListView>
</Grid>