2017-03-03 61 views
1

我正在嘗試創建一個外部網格的頁面,該網格將網頁的一半分爲網格列中的一個透視。網格內滾動的滾動

代碼:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 


     <Pivot Grid.Row="1" Grid.Column="1"> 
      <Pivot.HeaderTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding}" FontSize="18" /> 
       </DataTemplate> 
      </Pivot.HeaderTemplate> 
      <PivotItem x:Name="Tab1" Header="Tab 1"> 
       <ListView x:Name="matchesList"> 
        <ListView.ItemTemplate> 
         <DataTemplate x:DataType="local:Data"> 
          <Grid> 
           <StackPanel Orientation="Horizontal"> 
            <TextBlock Text="{x:Bind Match}"/> 
           </StackPanel> 
          </Grid> 
         </DataTemplate> 
        </ListView.ItemTemplate> 
       </ListView> 
      </PivotItem> 
      <PivotItem x:Name="Tab2" Header="Tab 2"> 

      </PivotItem> 
     </Pivot> 
</Grid> 

我想樞軸項目滾動。我曾嘗試將scrollviewer放置在很多內部元素的周圍,但圍繞整個樞軸是它顯示的唯一方式。 ListView正確填充,但僅在屏幕末尾運行,仍然不能滾動。我怎樣才能讓ListView在數據透視中滾動?

謝謝!

+0

爲什麼在使用外滾動查看器時,listview有它自己的?正如我試過的代碼看起來像列表應該可以隨水平樞軸滾動。您可以嘗試使用ScrollViewer.IsHorizo​​ntalScrollChainingEnabled =「True」(或垂直視情況而定)。 – Romasz

+0

對不起,我從我的代碼中刪除了它,因爲它沒有改變任何東西。我想要做的是讓ListView內的PivotItem垂直滾動。數據列表垂直,但只是流出屏幕.. –

回答

0

,因爲我已經累了,如果啓用IsHorizontalScrollChainingEnabled,它應該工作:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 


    <Pivot Grid.Row="1" Grid.Column="1"> 
     <Pivot.HeaderTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding}" FontSize="18" /> 
      </DataTemplate> 
     </Pivot.HeaderTemplate> 
     <PivotItem x:Name="Tab1" Header="Tab 1"> 
      <ListView x:Name="matchesList" ScrollViewer.IsHorizontalScrollChainingEnabled="True"> 
       <ListView.ItemTemplate> 
        <DataTemplate x:DataType="local:Data"> 
         <Grid> 
          <StackPanel Orientation="Horizontal"> 
           <TextBlock Text="{x:Bind Match}"/> 
          </StackPanel> 
         </Grid> 
        </DataTemplate> 
       </ListView.ItemTemplate> 
      </ListView> 
     </PivotItem> 
     <PivotItem x:Name="Tab2" Header="Tab 2"> 

     </PivotItem> 
    </Pivot> 
</Grid> 

一般滾動的ScrollViewer 在一個非常低的水平處理,以提高性能。雖然這也有一些缺點 - 當您要使用指針事件時會帶來問題。爲了使生活更輕鬆,設計了兩個屬性 - 垂直/水平鏈接 - 這允許通過從兒童到父母的垂直/水平滾動 - 如在您的示例中 - ListView垂直滾動和樞軸水平。

+0

好吧!因此,如果我在外部網格中定義透視圖所在的行的高度(高度=「200」),此代碼將起作用,滾動條將顯示出來。顯然問題在於外部網格從窗口向下延伸以適應列表視圖的大小,因此它不在自動高度上滾動。有沒有辦法讓網格適合窗口而不是流出屏幕? –

+1

我解決了這個問題!該頁面正在分屏框架內顯示。我需要在我的splitview對象周圍定義一個網格,並將其與'Height =「*」'放在一行中。內容的大小正確並滾動! –

+0

@KennyWitham很高興聽到你解決了這個問題。 – Romasz