c# – GridView水平方向的FooterTemplate

c# – GridView水平方向的FooterTemplate,第1张

概述我开发了Win8.1通用应用程序. 我正在使用带有WrapGrid的GridView作为ItemsPanel.垂直滚动被禁用,用户只需要水平滚动.我正在使用增量源集合作为ItemsSource,当用户滚动到GridView的末尾时,会动态添加新项目.除了一件事,一切都很好.我想使进度指示器右对齐,并且在加载新页面时它必须变得可见.我尝试为网格视图设置页脚模板,但它是隐藏的(bc可能默认页脚添加在i 我开发了Win8.1通用应用程序.

我正在使用带有WrapGrID的GrIDVIEw作为ItemsPanel.垂直滚动被禁用,用户只需要水平滚动.我正在使用增量源集合作为ItemsSource,当用户滚动到GrIDVIEw的末尾时,会动态添加新项目.除了一件事,一切都很好.我想使进度指示器右对齐,并且在加载新页面时它必须变得可见.我尝试为网格视图设置页脚模板,但它是隐藏的(bc可能默认页脚添加在itemspanel下面或其他任何内容).

这是我用来为GrIDVIEw定义控件模板并将Footer设置为正确的代码.

<GrIDVIEw.Template>                    <ControlTemplate targettype="GrIDVIEw">                        <border borderBrush="{TemplateBinding borderBrush}"                                borderThickness="{TemplateBinding borderThickness}"                                 Background="{TemplateBinding Background}">                            <ScrollVIEwer x:name="ScrollVIEwer"                                           automationPropertIEs.AccessibilityVIEw="Raw"                                          BringIntoVIEwOnFocusChange="{TemplateBinding ScrollVIEwer.BringIntoVIEwOnFocusChange}"                                           HorizontalScrollMode="{TemplateBinding ScrollVIEwer.HorizontalScrollMode}"                                           HorizontalScrollbarVisibility="{TemplateBinding ScrollVIEwer.HorizontalScrollbarVisibility}"                                           IsHorizontalRailEnabled="{TemplateBinding ScrollVIEwer.IsHorizontalRailEnabled}"                                           IsHorizontalScrollChainingEnabled="{TemplateBinding ScrollVIEwer.IsHorizontalScrollChainingEnabled}"                                           IsverticalScrollChainingEnabled="{TemplateBinding ScrollVIEwer.IsverticalScrollChainingEnabled}"                                           IsverticalRailEnabled="{TemplateBinding ScrollVIEwer.IsverticalRailEnabled}"                                           IsDeferredScrollingEnabled="{TemplateBinding ScrollVIEwer.IsDeferredScrollingEnabled}"                                           TabNavigation="{TemplateBinding TabNavigation}"                                           VerticalScrollbarVisibility="{TemplateBinding ScrollVIEwer.VerticalScrollbarVisibility}"                                           VerticalScrollMode="{TemplateBinding ScrollVIEwer.VerticalScrollMode}"                                           ZoomMode="{TemplateBinding ScrollVIEwer.ZoomMode}">                                <StackPanel OrIEntation="Horizontal">                                    <ItemsPresenter headerTemplate="{TemplateBinding headerTemplate}"                                                    header="{TemplateBinding header}"                                                    headerTransitions="{TemplateBinding headerTransitions}"                                                    padding="{TemplateBinding padding}"/>                                    <ContentControl Transitions="{TemplateBinding FooterTransitions}"                                                    ContentTemplate="{TemplateBinding FooterTemplate}"                                                     Content="{TemplateBinding Footer}"/>                                </StackPanel>                            </ScrollVIEwer>                        </border>                    </ControlTemplate>                </GrIDVIEw.Template>

然后我将ProgressRing设置为页脚模板.

<GrIDVIEw.FooterTemplate>                    <DataTemplate>                        <ProgressRing VerticalAlignment="Stretch"                                      HorizontalAlignment="Stretch"                                      IsActive="{Binding IsBusy}"                                      margin="0,24"                                      WIDth="50"                                      Height="50"                                      Foreground="{StaticResource lightGreyborderBrush}"                                      Style="{StaticResource ProgressRingStyle}" />                    </DataTemplate>                </GrIDVIEw.FooterTemplate>

但是当我试图滚动时 – 事情变得疯狂. GrIDVIEw总是一个接一个地调用下一页加载,但是滚动位置几乎为0(在GrIDVIEw的开头).所以我得到无限页面加载.

谁能帮我这个?提前谢谢了!

编辑:我创建了一个小样本来重现.请看一下.这是link.

解决方法 支持右对齐的FooterTemplate开箱即用.只需使用ItemsWrapGrID(默认情况下在GrIDVIEw中使用)而不是使用WrapGrID作为ItemsPanel.您也不需要重新定义模板.以下是您的示例中的工作代码:

<GrID Background="{themeResource ApplicationPageBackgroundthemeBrush}">    <GrIDVIEw x:name="TestGrIDVIEw">        <GrIDVIEw.ItemsPanel>            <ItemsPanelTemplate>                <ItemsWrapGrID ItemHeight="100"                          OrIEntation="Vertical"                          MaximumRowsOrColumns="5" />            </ItemsPanelTemplate>        </GrIDVIEw.ItemsPanel>        <GrIDVIEw.ItemTemplate>            <DataTemplate>                <border Background="DarkSlateGray"                        Height="100"                        WIDth="100"                        margin="20">                    <TextBlock Foreground="#FFFFFF"                               Text="{Binding Number}" />                </border>            </DataTemplate>        </GrIDVIEw.ItemTemplate>        <GrIDVIEw.FooterTemplate>            <DataTemplate>                <ProgressRing IsActive="True"                              margin="0,24"                              WIDth="50"                              Height="50" />            </DataTemplate>        </GrIDVIEw.FooterTemplate>    </GrIDVIEw></GrID>

请注意,每次向右滚动时都会加载2页,因为GrIDVIEw认为一页不够.

希望这可以帮助.

总结

以上是内存溢出为你收集整理的c# – GridView水平方向的FooterTemplate全部内容,希望文章能够帮你解决c# – GridView水平方向的FooterTemplate所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存