【发布时间】:2015-10-26 09:18:26
【问题描述】:
这就是我想要达到的:创建一个适合手机屏幕的网格。网格中的两个控件,一个标题堆栈面板和一个填充屏幕剩余空间的枢轴控件。在枢轴控件中,我想显示其他三个控件。具有全高(始终可见)的标题堆栈面板,具有全高(始终可见)的按钮容器以及前两个控件之间的可滚动列表视图,它填充了枢轴项中的剩余空间。我试过了,但是如果我将列表视图的高度设置为星形字符,它会填充标题后的全部剩余空间,我看不到下面的按钮并且列表视图不可滚动。当我设置列表视图高度 fe。到 200 它按我接受的方式工作,按钮在列表视图下方可见,并且列表视图是可滚动的。但我不想设置任何硬编码的高度,那么我应该怎么做才能通过动态高度设置达到这种行为? 我尽可能地简化了我的 xaml 来举个例子。此示例按我的意愿工作,但我想将列表视图(200)的固定高度替换为动态值(*)以显示具有最大高度的列表视图并将其保持为可滚动控件:
<Grid x:Name="LayoutRoot">
<Grid.ChildrenTransitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Grid.ChildrenTransitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Margin="19,0,0,0">
<TextBlock x:Uid="Header" Name="pageTitle" Text="TITLE" Style="{ThemeResource TitleTextBlockStyle}" Margin="0,2,0,0" Width="243" />
</StackPanel>
<Pivot x:Name="myPivot" Grid.Row="1" Margin="-10,0,-10,0" x:FieldModifier="public">
<PivotItem x:Name="pivot_item1">
<PivotItem.Header>
<Grid >
<TextBlock Text="Header1"/>
</Grid>
</PivotItem.Header>
<StackPanel>
<Grid x:Name="PivotRoot">
<Grid.ChildrenTransitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Grid.ChildrenTransitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="200"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Margin="19,0,0,0">
<TextBlock x:Uid="PivotHeader" Text="PivotHeader" Margin="0,2,0,0" Width="243" />
</StackPanel>
<ListView x:Name="DataListView" Grid.Row="1" Margin="10,10,10,0" VerticalAlignment="Top" HorizontalAlignment="Stretch" x:FieldModifier="public">
</ListView>
<StackPanel Grid.Row="2" Margin="19,0,0,0">
<TextBlock x:Uid="PivotButtons" Text="PivotButtons" Margin="0,2,0,0" Width="243" />
</StackPanel>
</Grid>
</StackPanel>
</PivotItem>
<PivotItem x:Name="pivot_item2" >
<PivotItem.Header>
<Grid >
<TextBlock Text="Header2"/>
</Grid>
</PivotItem.Header>
<StackPanel>
<TextBlock Text="page2"></TextBlock>
</StackPanel>
</PivotItem>
</Pivot>
</Grid
【问题讨论】:
-
您是否尝试在滚动条内设置列表视图?
-
我试过 ScrollViewer 它没有帮助。我可能犯了一个错误,你能举个例子吗?
-
-
你应该设置滚动的高度
-
好的,但它又是一个常量值 (250),这种行为也无需滚动即可达到。我想要一个可滚动的列表视图,它的高度会自动设置为最大可用大小。 Fe.:屏幕高度为 400 像素。如果其他控件的总高度为 150,则列表视图的高度必须动态设置为 250。我可以通过使用 3 列定义并将它们的高度设置为:auto、*、auto 来使用网格达到此行为。但它似乎不适用于枢轴控件。
标签: windows-phone-8.1 winrt-xaml