Limiting number of items in a GridView C# UWP(限制GridView C#UWP中的项目数)
问题描述
我使用绑定到集合的网格视图。该集合包含未知数量的项目,我希望将GridView限制为在一行中仅显示5个项目。每一项都保存在一个堆叠面板中,该面板包含一个文本块和一幅图像。 A.如何限制GridView项目数? B.如果我不想限制它,我怎么才能创建一个1行的网格视图,用一个小箭头将网格滚动到一边?
以下是我的XAML代码:
<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个项目。
GridView使用ItemsWrapGrid作为默认ItemsPanel。并且ItemsWrapGrid有一个MaximumRowsOrColumns property。使用此属性,我们可以限制在换行之前显示的最大行数或列数。此属性与Orientation属性一起使用。如果一行只显示5项,可以进行如下设置:
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid MaximumRowsOrColumns="5" Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
请注意,MaximumRowsOrColumns仅限制最大数量,如果GridView不够大,您可能会看到较少的项目。
如果我不想限制它,我如何创建一个用小箭头将网格滚动到一侧的1行网格视图?
要显示水平堆叠的集合,我们通常使用ListView。如果您确实想使用GridView,可以使用ItemsStackPanel而不是ItemsWrapGrid,如下所示:
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
要启用滚动,您可能还需要设置ScrollViewer.HorizontalScrollBarVisibility属性和ScrollViewer.HorizontalScrollMode属性,如下所示:
<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 C#UWP中的项目数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:限制GridView C#UWP中的项目数
基础教程推荐
- WPF 模态进度窗口 2022-01-01
- 如何使用 .Net 检查 Active Directory 服务器是否已启动并正在运行? 2022-01-01
- .NET SerialPort DataReceived 事件未触发 2022-01-01
- Azure Functions:CosmosDBTrigger 未在 Visual Studio 中触发 2022-01-01
- 我应该在后面的代码中直接使用 Linq To SQL 还是使 2022-01-01
- Moq It.Is<>不匹配 2022-01-01
- 如果有人提交恶意软件Nuget包怎么办? 2022-01-01
- 禁止输入少量字符,例如'<'、'&a 2022-01-01
- C# 从 List<List<int>> 中删除重 2022-01-01
- 当值可以是对象或空数组时反序列化 JSON 2022-01-01
