限制GridView C#UWP中的项目数
我使用绑定到集合的网格视图。集合包含未知数量的项,我想限制GridView在一行中仅显示5项。每个项目都保存在stackpanel中,stackpanel保存一个文本块和一个图像 A.如何限制项目的GridView数量? B.如果我不想限制它,我如何制作一行的gridview,用一个小箭头将网格滚动到一边 以下是我的xaml代码:限制GridView C#UWP中的项目数,c#,gridview,uwp,uwp-xaml,C#,Gridview,Uwp,Uwp Xaml,我使用绑定到集合的网格视图。集合包含未知数量的项,我想限制GridView在一行中仅显示5项。每个项目都保存在stackpanel中,stackpanel保存一个文本块和一个图像 A.如何限制项目的GridView数量? B.如果我不想限制它,我如何制作一行的gridview,用一个小箭头将网格滚动到一边 以下是我的xaml代码: <GridView Name="ListViewGrid" Background="Azure" Grid.Row="2"
<GridView Name="ListViewGrid" Background="Azure"
Grid.Row="2"
ItemsSource="{x:Bind ForeCasts}"
Foreground="Chartreuse"
HorizontalAlignment="Stretch" >
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:ForeCast">
<StackPanel Orientation="Vertical" Margin="20,20,20,20" Height="260" Width="260">
<TextBlock HorizontalAlignment="Center" Margin="10,10,10,10">
<Run Text="{x:Bind TempString}" FontSize="24" Foreground="Black"/>
<Run Text="°" FontFamily="Segoe Print" FontSize="24"/>
<Run Text="C" FontSize="24"/>
</TextBlock>
<Image Source="{x:Bind ImageString}" Width="60" Height="60"/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
集合包含未知数量的项,我想限制GridView在一行中仅显示5项
使用作为默认值。而且有一个。使用此属性,我们可以限制包装前显示的最大行数或列数。此属性与属性一起工作。要在一行中仅显示5项,我们可以按如下方式进行设置:
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid MaximumRowsOrColumns="5" Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView Name="ListViewGrid"
Grid.Row="2"
HorizontalAlignment="Stretch"
Background="Azure"
Foreground="Chartreuse"
ItemsSource="{x:Bind ForeCasts}"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.HorizontalScrollMode="Enabled">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:ForeCast">
<StackPanel Width="260"
Height="260"
Margin="20,20,20,20"
Orientation="Vertical">
<TextBlock Margin="10,10,10,10" HorizontalAlignment="Center">
<Run FontSize="24" Foreground="Black" Text="{x:Bind TempString}" />
<Run FontFamily="Segoe Print" FontSize="24" Text="°" />
<Run FontSize="24" Text="C" />
</TextBlock>
<Image Width="60" Height="60" Source="{x:Bind ImageString}" />
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
要启用滚动,您可能还需要设置属性和属性,如下所示:
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid MaximumRowsOrColumns="5" Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView Name="ListViewGrid"
Grid.Row="2"
HorizontalAlignment="Stretch"
Background="Azure"
Foreground="Chartreuse"
ItemsSource="{x:Bind ForeCasts}"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.HorizontalScrollMode="Enabled">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:ForeCast">
<StackPanel Width="260"
Height="260"
Margin="20,20,20,20"
Orientation="Vertical">
<TextBlock Margin="10,10,10,10" HorizontalAlignment="Center">
<Run FontSize="24" Foreground="Black" Text="{x:Bind TempString}" />
<Run FontFamily="Segoe Print" FontSize="24" Text="°" />
<Run FontSize="24" Text="C" />
</TextBlock>
<Image Width="60" Height="60" Source="{x:Bind ImageString}" />
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
Hello Jay,例如,我使用ItemsWrap GridMaximumRowsOrColumns=“3”,总共有18个项目,由6行显示。但是,我只想显示第一排,或者可能是第一排和第二排。有什么方法可以做到这一点吗?@axcelenator如果您只想显示第一行,那么您可能需要更改项资源
。例如,如果要显示前三个项目,可以从forecast
中检索它们,并将这三个项目设置为ItemsSource
。谢谢。知道了。我认为有一种方法可以在不改变原始来源的情况下限制该来源。