天天看點

WPF 自定義控件之Pagination 分頁

Pagination 分頁

當資料量過多時,使用分頁分解資料。

基礎用法

頁數較少時的效果

WPF 自定義控件之Pagination 分頁
<lib:Pagination Total="5" PageSize="1"></lib:Pagination>
           

大于 7 頁時的效果

WPF 自定義控件之Pagination 分頁
<lib:Pagination Total="100" PageSize="1"></lib:Pagination>
           

設定最大頁碼按鈕數

預設情況下,當總頁數超過 7 頁時,Pagination 會折疊多餘的頁碼按鈕。通過PagerCount屬性可以設定最大頁碼按鈕數。

WPF 自定義控件之Pagination 分頁
<lib:Pagination Total="50" PageSize="1" PagerCount="11"></lib:Pagination>
           

帶有背景色的分頁

WPF 自定義控件之Pagination 分頁
<lib:Pagination Total="1000"  Background="#409EFF"></lib:Pagination>
           

附加功能

根據場景需要,可以添加其他功能子產品。

WPF 自定義控件之Pagination 分頁
<lib:Pagination Total="1000" Margin="20" x:Name="pagination" Background="#409EFF"></lib:Pagination>
        <WrapPanel Margin="0 20 0 0">
            <Label VerticalContentAlignment="Center" ContentStringFormat="共{0}條" Content="{Binding ElementName=pagination,Path=Total}"></Label>
            <ComboBox SelectedIndex="0" SelectedValue="{Binding ElementName=pagination,Path=PageSize,Mode=TwoWay}" ItemsSource="{Binding Source={StaticResource PageSizeSource}}">
            </ComboBox>
            <Label VerticalContentAlignment="Center" Content="前往"></Label>
            <TextBox Width="50" VerticalContentAlignment="Center" Text="{Binding ElementName=pagination,Path=CurrentPage,Mode=TwoWay}"></TextBox>
            <Label VerticalContentAlignment="Center" Content="頁"></Label>
            <CheckBox>這隻是為了擷取焦點的</CheckBox>
        </WrapPanel>
           

當隻有一頁時隐藏分頁

當隻有一頁時,通過設定 HideOnSinglePage屬性來隐藏分頁。

WPF 自定義控件之Pagination 分頁

Attributes

參數 說明 類型 可選值 預設值
PageSize 每頁顯示條目個數 int 10
Total 總條目數 int
PageCount 總頁數 int
PagerCount 頁碼按鈕的數量,當總頁數超過該值時會折疊 int 大于等于 5 且小于等于 21 的奇數 7
CurrentPage 目前頁數 int 1
HideOnSinglePage 隻有一頁時是否隐藏 boolean true

 源碼位址:https://github.com/Super0Lan/ControlDesign

WPF

繼續閱讀