使用按钮处理 ListView 中的滚动
Handling scroll in ListView with buttons
我有一个水平的 ListView
,我想在其中以不同于通常滚动条的方式处理滚动。
现在当项目溢出时会出现一个滚动条。相反,我想检测到这一点并在每一侧添加按钮来进行滚动,就像浏览器一样。
<ListView Grid.Column="1"
Name="NavList"
ItemsSource="{x:Bind TabItems}"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollMode="Enabled"
ScrollViewer.VerticalScrollMode="Disabled"
IsItemClickEnabled="True"
ItemClick="NavList_OnItemClick"
ItemContainerStyle="{StaticResource ListViewItemStyleCustom}"
SizeChanged="NavList_OnSizeChanged">
<ListView.ItemTemplate>
<DataTemplate x:DataType="models:TabNavigationItem">
<Grid Height="48" Margin="4,0,4,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Height="20" Text="{x:Bind Text}" HorizontalAlignment="Stretch" VerticalAlignment="Center" TextTrimming="CharacterEllipsis"></TextBlock>
<Viewbox Grid.Column="1" Width="14" Height="14" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="2,1,0,0" Visibility="{x:Bind Selected, Mode=OneWay}">
<Button Width="100" Height="100" Background="{StaticResource Transparent}" VerticalAlignment="Center" Click="TabCloseButton_OnClick" Padding="0,0,0,0" HorizontalContentAlignment="Right">
<FontIcon FontFamily="Segoe MDL2 Assets" Glyph="" FontSize="100" Foreground="{StaticResource Text-Black}"></FontIcon>
</Button>
</Viewbox>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<controls:WrapPanel HorizontalSpacing="0" Orientation="Horizontal" Height="48"></controls:WrapPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
我的列表视图。它在 "Home" 按钮之后开始并在 "Search" 按钮处结束:
我想要的功能:
有人可以指出我如何实现这一目标的方向吗?
您实际上需要的是 TabView 控件。请查看文档以了解如何使用它。
它是开源的,你可以检查它source code以进一步研究。
我有一个水平的 ListView
,我想在其中以不同于通常滚动条的方式处理滚动。
现在当项目溢出时会出现一个滚动条。相反,我想检测到这一点并在每一侧添加按钮来进行滚动,就像浏览器一样。
<ListView Grid.Column="1"
Name="NavList"
ItemsSource="{x:Bind TabItems}"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollMode="Enabled"
ScrollViewer.VerticalScrollMode="Disabled"
IsItemClickEnabled="True"
ItemClick="NavList_OnItemClick"
ItemContainerStyle="{StaticResource ListViewItemStyleCustom}"
SizeChanged="NavList_OnSizeChanged">
<ListView.ItemTemplate>
<DataTemplate x:DataType="models:TabNavigationItem">
<Grid Height="48" Margin="4,0,4,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Height="20" Text="{x:Bind Text}" HorizontalAlignment="Stretch" VerticalAlignment="Center" TextTrimming="CharacterEllipsis"></TextBlock>
<Viewbox Grid.Column="1" Width="14" Height="14" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="2,1,0,0" Visibility="{x:Bind Selected, Mode=OneWay}">
<Button Width="100" Height="100" Background="{StaticResource Transparent}" VerticalAlignment="Center" Click="TabCloseButton_OnClick" Padding="0,0,0,0" HorizontalContentAlignment="Right">
<FontIcon FontFamily="Segoe MDL2 Assets" Glyph="" FontSize="100" Foreground="{StaticResource Text-Black}"></FontIcon>
</Button>
</Viewbox>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<controls:WrapPanel HorizontalSpacing="0" Orientation="Horizontal" Height="48"></controls:WrapPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
我的列表视图。它在 "Home" 按钮之后开始并在 "Search" 按钮处结束:
我想要的功能:
有人可以指出我如何实现这一目标的方向吗?
您实际上需要的是 TabView 控件。请查看文档以了解如何使用它。
它是开源的,你可以检查它source code以进一步研究。