高度为50%的UWP网格和/或StackPanel

时间:2016-07-12 14:06:25

标签: uwp

我想安排2个网格(或StackPanels)包含。 Scrollviewer垂直。 它们中的每一个都应该是设备高度的50%。或者,更准确地说:它们在一个容器中,它们的高度应该是该容器高度的50%。 据我所知,我可以用像素设置高度,以及#34; auto"和" *",但不是百分比。

应该采用什么技术来实现这一目标?

我的代码到目前为止:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Pivot Title="Pivot" >
            <PivotItem Header="Start">
                <Grid/>
            </PivotItem>
            <PivotItem Header="Baustellenbegehung">
                <Grid/>
            </PivotItem>
            <PivotItem Header="Mangelanzeige">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <StackPanel Grid.Row="0" Orientation="Vertical">
                        <ScrollViewer>
                            <StackPanel Orientation="Vertical">
                                <TextBlock Text="Aktuelle Mangelanzeigen" />
                                <ListView Name="lstMangelanzeigenAktiv" />
                            </StackPanel>
                        </ScrollViewer>
                    </StackPanel>
                    <StackPanel Grid.Row="1" Orientation="Vertical">
                        <ScrollViewer>
                            <StackPanel>
                                <TextBlock Text="Archiv Mangelanzeigen" />
                                <ListView Name="lstMangelanzeigenArchiv" />
                            </StackPanel>
                        </ScrollViewer>
                    </StackPanel>
                </Grid>
            </PivotItem>
            <PivotItem Header="Zustandsfeststellungsprotokoll">
                <Grid/>
            </PivotItem>
        </Pivot>

    </Grid>

编辑:

我删除了代码并按照建议添加了.5 *但是当我填充ListView时我无法滚动它们:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height=".5*"/>
        <RowDefinition Height=".5*"/>
    </Grid.RowDefinitions>
    <StackPanel Grid.Row="0" Orientation="Vertical">
        <ScrollViewer>
            <StackPanel Orientation="Vertical">
                <TextBlock Text="Aktuelle Mangelanzeigen" />
                <ListView Name="lstMangelanzeigenAktiv" />
            </StackPanel>
        </ScrollViewer>
    </StackPanel>
    <StackPanel Grid.Row="1" Orientation="Vertical">
        <ScrollViewer>
            <StackPanel>
                <TextBlock Text="Archiv Mangelanzeigen" />
                <ListView Name="lstMangelanzeigenArchiv" />
            </StackPanel>
        </ScrollViewer>
    </StackPanel>
</Grid>

编辑2: 这是我当前版本的屏幕截图。 我在两个ListViews中添加了20个项目,我预计会有2个滚动条(每个ListView一个): enter image description here

1 个答案:

答案 0 :(得分:2)

如果您将Grid用作容器,则可以按百分比设置行定义:

<Grid.RowDefinitions>
      <RowDefinition Height=".5*"/>
      <RowDefinition Height=".5*"/>
 </Grid.RowDefinitions>

这意味着行占据了可用高度的50%。

编辑: 根据您的需要,您应该以这种方式解决:

       <PivotItem Header="Mangelanzeige">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <Grid Grid.Row="0" VerticalAlignment="Stretch">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="auto"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <TextBlock Grid.Row="0" Text="TB1"/>
                        <ListView Grid.Row="1" VerticalAlignment="Stretch"/>
                    </Grid >
                    <Grid Grid.Row="1" VerticalAlignment="Stretch">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="auto"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <TextBlock Grid.Row="0"  Text="TB2"/>
                        <ListView Grid.Row="1"  VerticalAlignment="Stretch"/>
                    </Grid >
                </Grid>
            </PivotItem>

在这种情况下,使用StackPanel不允许您拉伸其内容,因此,listview没有伸展。