2016-04-24 83 views
3

如果您将此代码粘贴到新的UWP应用程序的主页面(或查看第一张图片),您可以看到橙色网格占用的空间超过所需(VerticalAlignment设置为顶部)。为了使它像它应该那样工作,您必须将此网格的第二行的高度设置为Auto(请参阅第二张图片)。问题是我想给第二行/最后一行提供额外的空间,而不是将它分配到所有行中。
将控件放置在自己的网格左侧列中(显然,因为没有行跨度),但我不能这样做,因为当屏幕缩小右列中的堆栈面板时,会进入左列中的行。

第二个问题是,如果您单击橙色/绿色/黄色空间,焦点始终移到第一行(黄色)的文本框。UWP Grid RowSpan with ScroolViewer

UPDATE:这两个问题都没有滚动查看器,但我显然需要它。


<Page 
x:Class="App1.MainPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:App1" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d"> 

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <ScrollViewer Background="DarkGreen" VerticalScrollBarVisibility="Auto"> 
     <Grid Background="DarkOrange" Margin="10" VerticalAlignment="Top"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="Auto" /> 
      </Grid.ColumnDefinitions> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="*" /> 
      </Grid.RowDefinitions> 
      <StackPanel Grid.Row="0" Background="Yellow"> 
       <TextBlock Text="Title" /> 
       <TextBox Margin="20" /> 
      </StackPanel> 
      <Grid Grid.Row="1" Background="DeepPink" VerticalAlignment="Top"> 
       <ListView Margin="10" VerticalAlignment="Top"> 
        <ListView.Items> 
         <TextBlock Text="Item1" /> 
        </ListView.Items> 
       </ListView> 
      </Grid> 
      <StackPanel Grid.Column="1" Grid.RowSpan="2" Background="Blue" VerticalAlignment="Top"> 
       <StackPanel> 
        <TextBlock Text="Title1" /> 
        <GridView Margin="0,10,0,0"> 
         <GridView.ItemsPanel> 
          <ItemsPanelTemplate> 
           <ItemsWrapGrid Orientation="Horizontal" MaximumRowsOrColumns="4" /> 
          </ItemsPanelTemplate> 
         </GridView.ItemsPanel> 
         <GridView.Items> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
         </GridView.Items> 
        </GridView> 
       </StackPanel> 
       <StackPanel> 
        <TextBlock Text="Title2" /> 
        <GridView Margin="0,10,0,0"> 
         <GridView.ItemsPanel> 
          <ItemsPanelTemplate> 
           <ItemsWrapGrid Orientation="Horizontal" MaximumRowsOrColumns="4" /> 
          </ItemsPanelTemplate> 
         </GridView.ItemsPanel> 
         <GridView.Items> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
          <Rectangle Width="80" Height="80" Fill="White" /> 
         </GridView.Items> 
        </GridView> 
       </StackPanel> 
      </StackPanel> 
     </Grid> 
    </ScrollViewer> 
</Grid> 

rowspan

+0

所以,你要像第二个画面? –

+0

我想要第一张照片,但橙色网格应该像第二张照片一样结束。我不知道为什么会增加额外的空间......对我来说这是计算度量中的一个错误 –

回答