private void _RefreshPager(MISLinkButton misImgBtn) { //对比点击的控件 if (misImgBtn.Tag != null) { if (misImgBtn.Tag.Equals(0)) { if (this.PageIndex > 1) { if (this.PageIndex == 2 && this.mCurrentIsAddEllipsisCtrl) //当前点击第二页时,显示第一个并移除左侧的省略号控件 { this.mCurrentIsAddEllipsisCtrl = false; this.PART_Content.Children.RemoveAt(0); } //刷新UI(所有的分页控件减1) this._RefreshPager(AddSubtract.subtract); this._MaintainCurrentPagers(AddSubtract.subtract); } } if (misImgBtn.Tag.Equals(5)) { //检测当前是否已添加省略号控件 if (!this.mCurrentIsAddEllipsisCtrl) { this.mCurrentIsAddEllipsisCtrl = true; //在翻页控件第一个位置添加一个省略号控件 this.PART_Content.Children.Insert(0, new MISLinkButton() { Content = "...", Width = 35, BorderThickness = new Thickness(1, 0, 0, 0), Style = Application.Current.FindResource("DefaultLinkButton3Style") as Style }); } //刷新UI(所有的分页控件加1) this._RefreshPager(AddSubtract.Add); this._MaintainCurrentPagers(AddSubtract.Add); } } #endregion }
//初始化控件时调用的系统方法 public override void OnApplyTemplate() { base.OnApplyTemplate(); this.PART_Content = this.GetTemplateChild(MISPager.MIS_PART_CONTENT) as StackPanel; this.PART_Nextpage = this.GetTemplateChild(MISPager.MIS_PART_NEXTPAGE) as MISImageButton; this.PART_Previouspage = this.GetTemplateChild(MISPager.MIS_PART_PREVIOUSPAGE) as MISImageButton; this.PART_Count = this.GetTemplateChild(MISPager.MIS_PART_COUNT) as TextBlock; this.PART_PageIndex = this.GetTemplateChild(MISPager.MIS_PART_PAGEINDEX) as TextBlock; //计算页码数 this.PageCount = (Int32)Math.Ceiling((Double)this.Total / (Double)this.PageSize); this.PART_Count.Text = this.Total.ToString(); //当总页码小于7页,显示1、2、3、4、5、6、7 if (this.PageCount <= 7) { this.mPagerType = PagerType.Default; for (int i = 0; i < this.PageCount; i++) { var misImgBtn = new MISLinkButton() { Content = (i + 1).ToString(), Width = 35, BorderThickness = new Thickness(1, 0, 0, 0), Style = Application.Current.FindResource("DefaultLinkButton2Style") as Style }; this.mCurrentPagers.Add((i + 1)); misImgBtn.Click += OnMisImgBtn_Click; if (this.PART_Content != null) { this.PART_Content.Children.Add(misImgBtn); } } } else { this.mPagerType = PagerType.Complex; for (int i = 0; i < 5; i++) { var misImgBtn = new MISLinkButton() { Content = (i + 1).ToString(), Width = 35, BorderThickness = new Thickness(1, 0, 0, 0), Style = Application.Current.FindResource("DefaultLinkButton2Style") as Style }; misImgBtn.Click += OnMisImgBtn_Click; if (i.Equals(0)) { misImgBtn.Tag = 0; //设置左控制点 } if (i.Equals(4)) { misImgBtn.Tag = 5; //设置右控制点 } this.mCurrentPagers.Add((i + 1)); if (this.PART_Content != null) { this.PART_Content.Children.Add(misImgBtn); } } this.PART_Content.Children.Add(new MISLinkButton() { Content = "...", Width = 35, BorderThickness = new Thickness(1, 0, 0, 0), Style = Application.Current.FindResource("DefaultLinkButton3Style") as Style }); this.PART_Content.Children.Add(new MISLinkButton() { Content = this.PageCount.ToString(), Width = 35, BorderThickness = new Thickness(1, 0, 0, 0), Style = Application.Current.FindResource("DefaultLinkButton2Style") as Style }); } this.SetLinkButtonFocus(0); this._SetNextpageAndPreviouspageState(); if (this.PART_Previouspage != null) { this.PART_Previouspage.Click += OnPART_Previouspage_Click; } if (this.PART_Nextpage != null) { this.PART_Nextpage.Click += OnPART_Nextpage_Click; } }