zoukankan      html  css  js  c++  java
  • Windows 8 系列 GirdView 滚动事件获取 随笔

    XAML:

      <GridView
           x:Name="itemGridView"  >
    
                <GridView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <VirtualizingStackPanel Orientation="Horizontal"/>
                    </ItemsPanelTemplate>
                </GridView.ItemsPanel>
                <GridView.GroupStyle>
                    <GroupStyle>
                        <GroupStyle.HeaderTemplate>
                            <DataTemplate>
                                <Grid Margin="1,0,0,6">
                                    <Button
                                        AutomationProperties.Name="Group Title"
                                        Click="Header_Click"
                                        Style="{StaticResource TextPrimaryButtonStyle}" >
                                        <StackPanel Orientation="Horizontal">
                                            <TextBlock Text="{Binding Title}" Margin="3,-7,10,10" Style="{StaticResource GroupHeaderTextStyle}" />
                                            <TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,-7,0,10" Style="{StaticResource GroupHeaderTextStyle}"/>
                                        </StackPanel>
                                    </Button>
                                </Grid>
                            </DataTemplate>
                        </GroupStyle.HeaderTemplate>
                        <GroupStyle.Panel>
                            <ItemsPanelTemplate>
                              
                                <VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,80,0"/>
                              
                            </ItemsPanelTemplate>
                        </GroupStyle.Panel>
                        
                    </GroupStyle>
                </GridView.GroupStyle>
            </GridView>

    .cs:

     /// <summary>
           /// 根据名称找到控件的内容控件
           /// </summary>
           /// <typeparam name="T"></typeparam>
           /// <param name="parent"></param>
           /// <param name="name"></param>
           /// <returns></returns>
            public T FindVisualChildByName<T>(DependencyObject parent, string name) where T : DependencyObject
            {
                for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
                {
                    var child = VisualTreeHelper.GetChild(parent, i);
                    string controlName = child.GetValue(Control.NameProperty) as string;
                    if (controlName == name)
                    {
                        return child as T;
                    }
                    else
                    {
                        T result = FindVisualChildByName<T>(child, name);
                        if (result != null)
                            return result;
                    }
                }
                return null;
            }

    XAML-.cs:

              //找到gridview中的 scrollViewer 、 scrollBar 注册值改变事件
                    //Tip 获取该事件要在绑定数据后才去注册,不然获取不到scrollviewer 
                    var scrollViewer = this.FindVisualChildByName<ScrollViewer>(this.itemGridView, "ScrollViewer");
             //找到水平的滚轴
    var scroollBar = this.FindVisualChildByName<ScrollBar>(scrollViewer, "HorizontalScrollBar"); scroollBar.ValueChanged += scroollBar_ValueChanged;
      private void scroollBar_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
            {
                ScrollBar scrollbar = sender as ScrollBar;
                //当滚轴值为最大时并且没有在加载数据时
                if (e.NewValue == scrollbar.Maximum && !isLoading)
                {
                   //异步加载数据
                   LoadData();
                   
                    //设置滚轴的值偏移点,以便再次出发valueChanged事件
                     scrollbar.Value = e.NewValue - 1E-8;
                }
                if (e.NewValue == scrollbar.Minimum)
                { 
                
                }
            }
    学徒帮-jQuery帮帮帮 欢迎更多的前端交流、Js交流、jQuery交流
  • 相关阅读:
    第五,六章
    第三,四章
    第一,二章
    20131019作业 2 分支、循环结构
    20131016课堂实验4
    20131014课堂实验3
    20131007国庆作业例7-11,7-12,7-13,7-14
    20131006国庆作业例7-7,7-8,7-9
    20131006国庆作业例7-4,7-5,7-6
    20131006国庆作业第七章例7-1,7-2,7-3
  • 原文地址:https://www.cnblogs.com/Jusoc/p/2763508.html
Copyright © 2011-2022 走看看