Windows 8 系列 — GirdView 滾動事件擷取 –隨筆

來源:互聯網
上載者:User

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)            {                         }        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.