我使用FlipView在页面中显示一些项目。网络服务我从支持分页获取数据,因此当用户滚动到当前最后一项时,我将下一页项添加到FlipView,例如如果页面大小为5,那么只要FlipView的SelectedIndex为4,9,14,19等,我就会再添加5个项目(索引从0开始)。
FlipView有两个小箭头,我们可以在桌面环境中使用(使用鼠标)来浏览FlipView。当我们在最后一个项目时,右箭头将消失,因为我们不能再进一步了。现在,如果此时我向列表中添加了更多项目,则右箭头不会重新出现,因此它不会给出FlipView中有更多项目的印象。如果
,右箭头才会重新出现这不是一个好的解决方案,需要进一步的用户培训。有没有办法解决这个问题?
这是一个显示问题的git仓库:https://github.com/4bh1sh3k/FlipViewDemo。要重新发出此问题,请滚动到最后一项,然后使用下面的按钮将更多项目添加到FlipView。
答案 0 :(得分:1)
这应该由控件本身决定。如果您确实希望自动显示该按钮,则可以在添加更多项目后强制显示下一个按钮(在FlipView style and template中名为NextButtonHorizontal
)。有关如何获取NextButtonHorizontal
按钮,您可以使用VisualTreeHelper
课程。例如:
private void OnButtonClick(object sender, RoutedEventArgs e)
{
AddImageUris();
IEnumerable<Button> items = FindVisualChildren<Button>(myFlipView);
foreach (Button item in items)
{
if (item.Name == "NextButtonHorizontal")
{
item.Visibility = Visibility;
}
}
}
private static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren<T>(child))
{
yield return childOfChild;
}
}
}
}
顺便说一下,这可以解决您的问题,但我不是很推荐。避免对较大的集合使用翻转视图控件,对于大型集合,请考虑ListView
或GridView
。更多详情请参阅FlipView
guidelines。