• Silverlight完全自定义DataPager


    silverlight 提供的控件虽然都好用 但是通常都会有默认模板样式 有些模板样式在中国人看来肯定不是很好看

    所以又时候 有必要修改下再使用 今天我就遇到DataPager的模板样式问题 我觉得自带的不怎么好看

    在网上查了下 还没有什么好的例子 那我就分享下我自己的例子 大神们见谅哦!

    先上图

    感觉这个看着换可以吧 你们如果要用可以自己再修改下

    首先引入命名空间

              xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
               xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"

    分页样式

            <!--测试分页控件样式开始-->

      

    View Code
      1 <Style x:Key="DataPagerStyle" TargetType="data:DataPager">
      2              <Setter Property="Background" Value="#FFF2F3F4"/>
      3              <Setter Property="BorderBrush">
      4                  <Setter.Value>
      5                      <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
      6                          <GradientStop Color="#FFA3AEB9" Offset="0"/>
      7                          <GradientStop Color="#FF8399A9" Offset="0.375"/>
      8                          <GradientStop Color="#FF718597" Offset="0.375"/>
      9                          <GradientStop Color="#FF617584" Offset="1"/>
     10                      </LinearGradientBrush>
     11                  </Setter.Value>
     12              </Setter>
     13              <Setter Property="BorderThickness" Value="1"/>
     14              <Setter Property="HorizontalContentAlignment" Value="Right" />
     15              <Setter Property="NumericButtonStyle">
     16                  <Setter.Value>
     17                      <Style TargetType="ToggleButton">
     18                          <Setter Property="MinHeight" Value="20"/>
     19                          <Setter Property="MinWidth" Value="20"/>
     20                          <Setter Property="HorizontalAlignment" Value="Right"/>
     21                          <Setter Property="VerticalAlignment" Value="Center"/>
     22                          <Setter Property="Background" Value="#00000000"/>
     23                          <Setter Property="BorderThickness" Value="1"/>
     24                          <Setter Property="Padding" Value="1"/>
     25                          <Setter Property="Template">
     26                              <Setter.Value>
     27                                  <ControlTemplate TargetType="ToggleButton">
     28                                      <Grid>
     29                                          <vsm:VisualStateManager.VisualStateGroups>
     30                                              <vsm:VisualStateGroup x:Name="CommonStates">
     31                                                  <vsm:VisualState x:Name="Normal"/>
     32                                                  <vsm:VisualState x:Name="MouseOver">
     33                                                      <Storyboard>
     34                                                          <ColorAnimation Duration="0" Storyboard.TargetName="OuterBtnBorder" Storyboard.TargetProperty="(BorderBrush).Color" To="#FFFFFFFF"/>
     35                                                          <ColorAnimation Duration="0" Storyboard.TargetName="InnerBtnBorder" Storyboard.TargetProperty="(BorderBrush).Color" To="#FFCCD1D6"/>
     36                                                      </Storyboard>
     37                                                  </vsm:VisualState>
     38                                                  <vsm:VisualState x:Name="Pressed">
     39                                                      <Storyboard>
     40                                                          <ColorAnimation Duration="0" Storyboard.TargetName="OuterBtnBorder" Storyboard.TargetProperty="(BorderBrush).Color" To="#FFFFFFFF"/>
     41                                                          <ColorAnimation Duration="0" Storyboard.TargetName="InnerBtnBorder" Storyboard.TargetProperty="(BorderBrush).Color" To="#FFCCD1D6"/>
     42                                                      </Storyboard>
     43                                                  </vsm:VisualState>
     44                                                  <vsm:VisualState x:Name="Disabled">
     45                                                      <Storyboard>
     46                                                          <DoubleAnimation Duration="0" Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="Opacity" To="0.5"/>
     47                                                      </Storyboard>
     48                                                  </vsm:VisualState>
     49                                              </vsm:VisualStateGroup>
     50                                              <vsm:VisualStateGroup x:Name="CheckStates">
     51                                                  <vsm:VisualState x:Name="Checked">
     52                                                      <Storyboard>
     53                                                          <DoubleAnimation Duration="0" Storyboard.TargetName="CheckedStateOuterBorder" Storyboard.TargetProperty="Opacity" To="1"/>
     54                                                      </Storyboard>
     55                                                  </vsm:VisualState>
     56                                                  <vsm:VisualState x:Name="Unchecked"/>
     57                                              </vsm:VisualStateGroup>
     58                                              <vsm:VisualStateGroup x:Name="FocusStates">
     59                                                  <vsm:VisualState x:Name="Focused">
     60                                                      <Storyboard>
     61                                                          <DoubleAnimation Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity" To="1"/>
     62                                                      </Storyboard>
     63                                                  </vsm:VisualState>
     64                                                  <vsm:VisualState x:Name="Unfocused"/>
     65                                              </vsm:VisualStateGroup>
     66                                          </vsm:VisualStateManager.VisualStateGroups>
     67                                          <Border x:Name="CheckedStateOuterBorder" Background="#7FA9A9A9" BorderBrush="#00FFFFFF" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3" Opacity="0"/>
     68                                          <Border x:Name="OuterBtnBorder" Background="{TemplateBinding Background}" BorderBrush="#00FFFFFF" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
     69                                              <Border x:Name="InnerBtnBorder" BorderBrush="#00CCD1D6" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2">
     70                                                  <ContentPresenter x:Name="contentPresenter" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" HorizontalAlignment="Center" VerticalAlignment="Center" />
     71                                              </Border>
     72                                          </Border>
     73                                          <Border x:Name="FocusVisualElement" Background="{TemplateBinding Background}" BorderBrush="#FF6DBDD1" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2" Margin="1" Opacity="0"/>
     74                                      </Grid>
     75                                  </ControlTemplate>
     76                              </Setter.Value>
     77                          </Setter>
     78                      </Style>
     79                  </Setter.Value>
     80              </Setter>
     81  
     82              <Setter Property="Template">
     83                  <Setter.Value>
     84                      <ControlTemplate TargetType="data:DataPager">
     85                          <Grid Name="Root" Background="Transparent">
     86                              <Grid.Resources>
     87                                  <SolidColorBrush x:Key="BackgroundColor" Color="#00000000"/>
     88                                  <SolidColorBrush x:Key="ForegroundColor" Color="#FF000000"/>
     89                                  <SolidColorBrush x:Key="BorderBrushColor" Color="#FFFFFFFF"/>
     90                                  <ControlTemplate x:Key="ButtonTemplate" TargetType="Button">
     91                                      <Grid>
     92                                          <vsm:VisualStateManager.VisualStateGroups>
     93                                              <vsm:VisualStateGroup x:Name="CommonStates">
     94                                                  <vsm:VisualState x:Name="Normal"/>
     95                                                  <vsm:VisualState x:Name="MouseOver">
     96                                                      <Storyboard>
     97                                                          <ColorAnimation Duration="0" Storyboard.TargetName="OuterBtnBorder" Storyboard.TargetProperty="(BorderBrush).Color" To="#FFFFFFFF"/>
     98                                                          <ColorAnimation Duration="0" Storyboard.TargetName="InnerBtnBorder" Storyboard.TargetProperty="(BorderBrush).Color" To="#FFCCD1D6"/>
     99                                                      </Storyboard>
    100                                                  </vsm:VisualState>
    101                                                  <vsm:VisualState x:Name="Pressed">
    102                                                      <Storyboard>
    103                                                          <ColorAnimation Duration="0" Storyboard.TargetName="OuterBtnBorder" Storyboard.TargetProperty="(BorderBrush).Color" To="#FFFFFFFF"/>
    104                                                          <ColorAnimation Duration="0" Storyboard.TargetName="InnerBtnBorder" Storyboard.TargetProperty="(BorderBrush).Color" To="#00FFFFFF"/>
    105                                                      </Storyboard>
    106                                                  </vsm:VisualState>
    107                                                  <vsm:VisualState x:Name="Disabled">
    108                                                      <Storyboard>
    109                                                          <DoubleAnimation Duration="0" Storyboard.TargetName="path" Storyboard.TargetProperty="Opacity" To="0.5"/>
    110                                                      </Storyboard>
    111                                                  </vsm:VisualState>
    112                                              </vsm:VisualStateGroup>
    113                                              <vsm:VisualStateGroup x:Name="FocusStates">
    114                                                  <vsm:VisualState x:Name="Focused">
    115                                                      <Storyboard>
    116                                                          <DoubleAnimation Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity" To="1"/>
    117                                                      </Storyboard>
    118                                                  </vsm:VisualState>
    119                                                  <vsm:VisualState x:Name="Unfocused"/>
    120                                              </vsm:VisualStateGroup>
    121                                          </vsm:VisualStateManager.VisualStateGroups>
    122                                          <Border x:Name="OuterBtnBorder" BorderBrush="#00FFFFFF" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
    123                                              <Border x:Name="InnerBtnBorder" BorderBrush="#00CCD1D6" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2">
    124                                                  <ContentPresenter x:Name="path" Content="{TemplateBinding Content}"/>
    125                                              </Border>
    126                                          </Border>
    127                                          <Border x:Name="FocusVisualElement" BorderBrush="#FF6DBDD1" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2" Margin="1" Opacity="0"/>
    128                                      </Grid>
    129                                  </ControlTemplate>
    130  
    131                                  <Style x:Key="PagingTextBoxStyle" TargetType="TextBox">
    132                                      <Setter Property="BorderThickness" Value="1"/>
    133                                      <Setter Property="Background" Value="#FFFFFFFF"/>
    134                                      <Setter Property="Foreground" Value="#FF000000"/>
    135                                      <Setter Property="Padding" Value="2, 2, 2, -1"/>
    136                                      <Setter Property="Template">
    137                                          <Setter.Value>
    138                                              <ControlTemplate TargetType="TextBox">
    139                                                  <Grid x:Name="RootElement">
    140                                                      <vsm:VisualStateManager.VisualStateGroups>
    141                                                          <vsm:VisualStateGroup x:Name="CommonStates">
    142                                                              <vsm:VisualState x:Name="Normal"/>
    143                                                              <vsm:VisualState x:Name="MouseOver">
    144                                                                  <Storyboard>
    145                                                                      <ColorAnimation Storyboard.TargetName="MouseOverBorder" Storyboard.TargetProperty="(BorderBrush).Color" To="#FF99C1E2"/>
    146                                                                  </Storyboard>
    147                                                              </vsm:VisualState>
    148                                                              <vsm:VisualState x:Name="Disabled">
    149                                                                  <Storyboard>
    150                                                                      <DoubleAnimation Storyboard.TargetName="DisabledVisualElement" Storyboard.TargetProperty="Opacity" To="1"/>
    151                                                                  </Storyboard>
    152                                                              </vsm:VisualState>
    153                                                              <vsm:VisualState x:Name="ReadOnly">
    154                                                                  <Storyboard>
    155                                                                      <DoubleAnimation Storyboard.TargetName="ReadOnlyVisualElement" Storyboard.TargetProperty="Opacity" To="1"/>
    156                                                                  </Storyboard>
    157                                                              </vsm:VisualState>
    158                                                          </vsm:VisualStateGroup>
    159                                                          <vsm:VisualStateGroup x:Name="FocusStates">
    160                                                              <vsm:VisualState x:Name="Focused">
    161                                                                  <Storyboard>
    162                                                                      <DoubleAnimation Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity" To="1"/>
    163                                                                  </Storyboard>
    164                                                              </vsm:VisualState>
    165                                                              <vsm:VisualState x:Name="Unfocused"/>
    166                                                          </vsm:VisualStateGroup>
    167                                                      </vsm:VisualStateManager.VisualStateGroups>
    168                                                      <Border x:Name="Border" Opacity="1" Background="#66FFFFFF" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1">
    169                                                          <Grid>
    170                                                              <Border x:Name="ReadOnlyVisualElement" Opacity="0" Background="#72F7F7F7"/>
    171                                                              <Border x:Name="MouseOverBorder" BorderBrush="Transparent" BorderThickness="1">
    172                                                                  <ScrollViewer BorderThickness="0" IsTabStop="False" Padding="{TemplateBinding Padding}" x:Name="ContentElement" Margin="0,-3,0,0" VerticalAlignment="Top"/>
    173                                                              </Border>
    174                                                          </Grid>
    175                                                      </Border>
    176                                                      <Border x:Name="DisabledVisualElement" IsHitTestVisible="False" Opacity="0" Background="#A5F7F7F7" BorderBrush="#A5F7F7F7" BorderThickness="{TemplateBinding BorderThickness}"/>
    177                                                      <Border Margin="1" x:Name="FocusVisualElement" IsHitTestVisible="False" Opacity="0" BorderBrush="#FF6DBDD1" BorderThickness="{TemplateBinding BorderThickness}"/>
    178                                                  </Grid>
    179                                              </ControlTemplate>
    180                                          </Setter.Value>
    181                                      </Setter>
    182                                  </Style>
    183                              </Grid.Resources>
    184                              <vsm:VisualStateManager.VisualStateGroups>
    185  
    186                                  <!-- CommonStates -->
    187                                  <vsm:VisualStateGroup x:Name="CommonStates">
    188                                      <vsm:VisualState x:Name="Normal"/>
    189                                      <vsm:VisualState x:Name="Disabled">
    190                                          <Storyboard>
    191                                              <DoubleAnimation Storyboard.TargetName="CurrentPagePrefixTextBlock" Storyboard.TargetProperty="Opacity" To="0.5" Duration="0"/>
    192                                              <DoubleAnimation Storyboard.TargetName="CurrentPageSuffixTextBlock" Storyboard.TargetProperty="Opacity" To="0.5" Duration="0"/>
    193                                          </Storyboard>
    194                                      </vsm:VisualState>
    195                                  </vsm:VisualStateGroup>
    196  
    197                                  <!-- MoveStates -->
    198                                  <vsm:VisualStateGroup x:Name="MoveStates">
    199                                      <vsm:VisualState x:Name="MoveEnabled">
    200                                          <Storyboard>
    201                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CurrentPageTextBox" Storyboard.TargetProperty="IsEnabled" Duration="0">
    202                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="True"/>
    203                                              </ObjectAnimationUsingKeyFrames>
    204                                          </Storyboard>
    205                                      </vsm:VisualState>
    206  
    207                                      <vsm:VisualState x:Name="MoveDisabled">
    208                                          <Storyboard>
    209                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CurrentPageTextBox" Storyboard.TargetProperty="IsEnabled" Duration="0">
    210                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="False"/>
    211                                              </ObjectAnimationUsingKeyFrames>
    212                                          </Storyboard>
    213                                      </vsm:VisualState>
    214                                  </vsm:VisualStateGroup>
    215  
    216                                  <!-- CanPageFirstStates -->
    217                                  <vsm:VisualStateGroup x:Name="MoveFirstStates">
    218                                      <vsm:VisualState x:Name="MoveFirstEnabled">
    219                                          <Storyboard>
    220                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FirstPageButton" Storyboard.TargetProperty="IsEnabled" Duration="0">
    221                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="True"/>
    222                                              </ObjectAnimationUsingKeyFrames>
    223                                          </Storyboard>
    224                                      </vsm:VisualState>
    225  
    226                                      <vsm:VisualState x:Name="MoveFirstDisabled">
    227                                          <Storyboard>
    228                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FirstPageButton" Storyboard.TargetProperty="IsEnabled" Duration="0">
    229                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="False"/>
    230                                              </ObjectAnimationUsingKeyFrames>
    231                                          </Storyboard>
    232                                      </vsm:VisualState>
    233                                  </vsm:VisualStateGroup>
    234  
    235                                  <!-- CanPagePreviousStates -->
    236                                  <vsm:VisualStateGroup x:Name="MovePreviousStates">
    237                                      <vsm:VisualState x:Name="MovePreviousEnabled">
    238                                          <Storyboard>
    239                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PreviousPageButton" Storyboard.TargetProperty="IsEnabled" Duration="0">
    240                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="True"/>
    241                                              </ObjectAnimationUsingKeyFrames>
    242                                          </Storyboard>
    243                                      </vsm:VisualState>
    244  
    245                                      <vsm:VisualState x:Name="MovePreviousDisabled">
    246                                          <Storyboard>
    247                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PreviousPageButton" Storyboard.TargetProperty="IsEnabled" Duration="0">
    248                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="False"/>
    249                                              </ObjectAnimationUsingKeyFrames>
    250                                          </Storyboard>
    251                                      </vsm:VisualState>
    252                                  </vsm:VisualStateGroup>
    253  
    254                                  <!-- CanPageNextStates -->
    255                                  <vsm:VisualStateGroup x:Name="MoveNextStates">
    256                                      <vsm:VisualState x:Name="MoveNextEnabled">
    257                                          <Storyboard>
    258                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="NextPageButton" Storyboard.TargetProperty="IsEnabled" Duration="0">
    259                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="True"/>
    260                                              </ObjectAnimationUsingKeyFrames>
    261                                          </Storyboard>
    262                                      </vsm:VisualState>
    263  
    264                                      <vsm:VisualState x:Name="MoveNextDisabled">
    265                                          <Storyboard>
    266                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="NextPageButton" Storyboard.TargetProperty="IsEnabled" Duration="0">
    267                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="False"/>
    268                                              </ObjectAnimationUsingKeyFrames>
    269                                          </Storyboard>
    270                                      </vsm:VisualState>
    271                                  </vsm:VisualStateGroup>
    272  
    273                                  <!-- CanPageLastStates -->
    274                                  <vsm:VisualStateGroup x:Name="MoveLastStates">
    275                                      <vsm:VisualState x:Name="MoveLastEnabled">
    276                                          <Storyboard>
    277                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LastPageButton" Storyboard.TargetProperty="IsEnabled" Duration="0">
    278                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="True"/>
    279                                              </ObjectAnimationUsingKeyFrames>
    280                                          </Storyboard>
    281                                      </vsm:VisualState>
    282  
    283                                      <vsm:VisualState x:Name="MoveLastDisabled">
    284                                          <Storyboard>
    285                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LastPageButton" Storyboard.TargetProperty="IsEnabled" Duration="0">
    286                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="False"/>
    287                                              </ObjectAnimationUsingKeyFrames>
    288                                          </Storyboard>
    289                                      </vsm:VisualState>
    290                                  </vsm:VisualStateGroup>
    291  
    292                                  <!-- PagerDisplayModeStates -->
    293                                  <vsm:VisualStateGroup x:Name="DisplayModeStates">
    294                                      <vsm:VisualState x:Name="FirstLastNumeric">
    295                                          <Storyboard>
    296                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="NextPageButton" Storyboard.TargetProperty="Visibility">
    297                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    298                                              </ObjectAnimationUsingKeyFrames>
    299                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PreviousPageButton" Storyboard.TargetProperty="Visibility">
    300                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    301                                              </ObjectAnimationUsingKeyFrames>
    302                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CurrentPageTextBox" Storyboard.TargetProperty="Visibility">
    303                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    304                                              </ObjectAnimationUsingKeyFrames>
    305                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PageDisplay" Storyboard.TargetProperty="Visibility">
    306                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    307                                              </ObjectAnimationUsingKeyFrames>
    308                                          </Storyboard>
    309                                      </vsm:VisualState>
    310  
    311                                      <vsm:VisualState x:Name="FirstLastPreviousNext">
    312                                          <Storyboard>
    313                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="NumericButtonPanel" Storyboard.TargetProperty="Visibility">
    314                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    315                                              </ObjectAnimationUsingKeyFrames>
    316                                          </Storyboard>
    317                                      </vsm:VisualState>
    318  
    319                                      <vsm:VisualState x:Name="FirstLastPreviousNextNumeric">
    320                                          <Storyboard>
    321                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CurrentPageTextBox" Storyboard.TargetProperty="Visibility">
    322                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    323                                              </ObjectAnimationUsingKeyFrames>
    324                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PageDisplay" Storyboard.TargetProperty="Visibility">
    325                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    326                                              </ObjectAnimationUsingKeyFrames>
    327                                          </Storyboard>
    328                                      </vsm:VisualState>
    329  
    330                                      <vsm:VisualState x:Name="Numeric">
    331                                          <Storyboard>
    332                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FirstPageButton" Storyboard.TargetProperty="Visibility">
    333                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    334                                              </ObjectAnimationUsingKeyFrames>
    335                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LastPageButton" Storyboard.TargetProperty="Visibility">
    336                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    337                                              </ObjectAnimationUsingKeyFrames>
    338                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="NextPageButton" Storyboard.TargetProperty="Visibility">
    339                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    340                                              </ObjectAnimationUsingKeyFrames>
    341                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PreviousPageButton" Storyboard.TargetProperty="Visibility">
    342                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    343                                              </ObjectAnimationUsingKeyFrames>
    344                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CurrentPageTextBox" Storyboard.TargetProperty="Visibility">
    345                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    346                                              </ObjectAnimationUsingKeyFrames>
    347                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PageDisplay" Storyboard.TargetProperty="Visibility">
    348                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    349                                              </ObjectAnimationUsingKeyFrames>
    350                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Separator1" Storyboard.TargetProperty="Visibility">
    351                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    352                                              </ObjectAnimationUsingKeyFrames>
    353                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Separator2" Storyboard.TargetProperty="Visibility">
    354                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    355                                              </ObjectAnimationUsingKeyFrames>
    356                                          </Storyboard>
    357                                      </vsm:VisualState>
    358  
    359                                      <vsm:VisualState x:Name="PreviousNext">
    360                                          <Storyboard>
    361                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FirstPageButton" Storyboard.TargetProperty="Visibility">
    362                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    363                                              </ObjectAnimationUsingKeyFrames>
    364                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LastPageButton" Storyboard.TargetProperty="Visibility">
    365                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    366                                              </ObjectAnimationUsingKeyFrames>
    367                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="NumericButtonPanel" Storyboard.TargetProperty="Visibility">
    368                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    369                                              </ObjectAnimationUsingKeyFrames>
    370                                          </Storyboard>
    371                                      </vsm:VisualState>
    372  
    373                                      <vsm:VisualState x:Name="PreviousNextNumeric">
    374                                          <Storyboard>
    375                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FirstPageButton" Storyboard.TargetProperty="Visibility">
    376                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    377                                              </ObjectAnimationUsingKeyFrames>
    378                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LastPageButton" Storyboard.TargetProperty="Visibility">
    379                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    380                                              </ObjectAnimationUsingKeyFrames>
    381                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CurrentPageTextBox" Storyboard.TargetProperty="Visibility">
    382                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    383                                              </ObjectAnimationUsingKeyFrames>
    384                                              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PageDisplay" Storyboard.TargetProperty="Visibility">
    385                                                  <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
    386                                              </ObjectAnimationUsingKeyFrames>
    387                                          </Storyboard>
    388                                      </vsm:VisualState>
    389                                  </vsm:VisualStateGroup>
    390  
    391                              </vsm:VisualStateManager.VisualStateGroups>
    392  
    393                              <!-- DataPager Control Parts -->
    394                              <Border MinHeight="24" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}" VerticalAlignment="Bottom" CornerRadius="2">
    395                                  <StackPanel Orientation="Horizontal" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="Stretch">
    396                                      <!--FirstPage Button -->
    397                                      <Button x:Name="FirstPageButton" Content="首页" Height="20" Width="30" Background="{StaticResource BackgroundColor}" Foreground="{StaticResource ForegroundColor}" BorderBrush="{StaticResource BorderBrushColor}" BorderThickness="1" Padding="1" HorizontalAlignment="Right" VerticalAlignment="Center" HorizontalContentAlignment="Center" Template="{StaticResource ButtonTemplate}">
    398                                          <!--<Button.Content>
    399                                              <Grid Height="9" Width="8" >
    400                                                  <Path Stretch="Fill" Data="M0,1 L1,0 L1,2 Z" Width="5" Height="9" HorizontalAlignment="Right" Fill="{TemplateBinding Foreground}"/>
    401                                                  <Rectangle Width="2" HorizontalAlignment="Left" Fill="{TemplateBinding Foreground}"/>
    402                                              </Grid>
    403                                          </Button.Content>
    404                                          -->
    405                                      </Button>
    406                                     
    407                                      
    408                                      <!--PreviousPage Button-->
    409                                      <Button Name="PreviousPageButton" Content="上一页" Height="20" Width="40"   Background="{StaticResource BackgroundColor}" Foreground="{StaticResource ForegroundColor}" BorderBrush="{StaticResource BorderBrushColor}" BorderThickness="1" Padding="1" HorizontalAlignment="Right" VerticalAlignment="Center" Template="{StaticResource ButtonTemplate}">
    410                                          <!--<Button.Content>
    411                                              <Path Stretch="Fill" Data="M0,1 L1,0 L1,2 Z" Width="5" Height="9" HorizontalAlignment="Center" Fill="{TemplateBinding Foreground}"/>
    412                                          </Button.Content>-->
    413                                      </Button>
    414  
    415                                      <Border x:Name="Separator1" Width="1" Background="#FFCCD1D6" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1,0,1,0" Margin="0,3,0,3"/>
    416                                      <!--Numeric Button Panel-->
    417                                      <StackPanel x:Name="NumericButtonPanel" Orientation="Horizontal" Margin="1"/>
    418  
    419                                      <!--Page Display-->
    420                                      <StackPanel x:Name="PageDisplay" Orientation="Horizontal">
    421                                          <TextBlock x:Name="CurrentPagePrefixTextBlock" Width="Auto" VerticalAlignment="Center" Margin="4,0,0,0" Foreground="{TemplateBinding Foreground}"/>
    422                                          <TextBox x:Name="CurrentPageTextBox" TextWrapping="Wrap" Width="40" Height="Auto" VerticalAlignment="Center" Margin="4,2,4,2" Style="{StaticResource PagingTextBoxStyle}" Foreground="{TemplateBinding Foreground}" BorderBrush="{TemplateBinding BorderBrush}"/>
    423                                          <TextBlock x:Name="CurrentPageSuffixTextBlock" Width="Auto" VerticalAlignment="Center" Margin="0,0,4,0" Foreground="{TemplateBinding Foreground}"/>
    424                                      </StackPanel>
    425                                      <Border x:Name="Separator2" Width="1" Background="#FFCCD1D6" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1,0,1,0" Margin="0,3,0,3"/>
    426  
    427                                      <!--NextPage Button-->
    428                                      <Button x:Name="NextPageButton" Content="下一页" Height="20" Width="40"  Background="{StaticResource BackgroundColor}" Foreground="{StaticResource ForegroundColor}" BorderBrush="{StaticResource BorderBrushColor}" BorderThickness="1" Padding="1"  HorizontalAlignment="Right" VerticalAlignment="Center" Template="{StaticResource ButtonTemplate}">
    429                                          <!--<Button.Content>
    430                                              <Path Stretch="Fill" Data="M0,0 L1,1 L0,2 Z" Width="5" Height="9" HorizontalAlignment="Center" Fill="{TemplateBinding Foreground}"/>
    431                                          </Button.Content>-->
    432                                      </Button>
    433  
    434                                      <!--LastPage Button-->
    435                                      <Button x:Name="LastPageButton" Content="尾页" Height="20" Width="30" Background="{StaticResource BackgroundColor}" Foreground="{StaticResource ForegroundColor}" BorderBrush="{StaticResource BorderBrushColor}" BorderThickness="1" Padding="1" HorizontalAlignment="Right" VerticalAlignment="Center" Template="{StaticResource ButtonTemplate}">
    436                                          <!--<Button.Content>
    437                                              <Grid Height="9" Width="8">
    438                                                  <Path Stretch="Fill" Data="M0,0 L1,1 L0,2 Z" Width="5" Height="9" HorizontalAlignment="Left" Fill="{TemplateBinding Foreground}"/>
    439                                                  <Rectangle Width="2" HorizontalAlignment="Right" Fill="{TemplateBinding Foreground}"/>
    440                                              </Grid>
    441                                          </Button.Content>-->
    442                                      </Button>
    443                                  </StackPanel>
    444                              </Border>
    445                          </Grid>
    446                      </ControlTemplate>
    447                  </Setter.Value>
    448              </Setter>
    449          </Style>

            <!--分页控件结束-->

     调用


     <data:DataPager x:Name ="PagerBar"  DisplayMode="FirstLastPreviousNextNumeric"  VerticalAlignment="Bottom" Style="{StaticResource DataPagerStyle}"
                     HorizontalAlignment="Center" Source="{Binding}" NumericButtonCount="4" AutoEllipsis="True"  Canvas.Top="402" Canvas.Left="116" />

    最后给大家给出我自己写的分页后台代码 后台每次只取一页例子

     1 public partial class WinFriendPanel : ChildWindow
     2     {
     3         private const int PageSize = 1;//页大小
     4         private List<int> itemCount = new List<int>();//总记录
     5         private bool flag = true;//首次加载标志
     6 
     7         public WinFriendPanel()
     8         {
     9             InitializeComponent();
    10             InitializeControls();
    11         }
    12 
    13         /// <summary>
    14         /// 初始化控件
    15         /// </summary>
    16         private void InitializeControls()
    17         {
    18             this.Name = "playerFriend";
    19             //点击页码的事件,获取当前页的数据并绑定到DataGrid
    20               this.PagerBar.PageIndexChanged += (s, e) =>
    21              {
    22                  if (!flag)//如果不是首次加载
    23                  {
    24                      ClientMessagePool.AddSendMessage(ClientCommand.GetPlayerFriend(GameGlobal.CurrentUser.Player.playerId.ToString(), ((DataPager)s).PageIndex + 1, PageSize));
    25                  }
    26                  flag = false;
    27              };
    28             //默认第一页数据
    29              ClientMessagePool.AddSendMessage(ClientCommand.GetPlayerFriend(GameGlobal.CurrentUser.Player.playerId.ToString(), 1, PageSize));
    30         }
    31 
    32         /// <summary>
    33         /// 显示玩家好友列表
    34         /// </summary>
    35         /// <param name="current">好友列表</param>
    36         public void DisplayPlayerFriends(List<PlayerFriendPage> current)
    37         {
    38             if (current != null)
    39             {
    40                 if (flag)//如果首次加载
    41                 {
    42                     int totalpagers = current[0] != null ? current[0].recordCount : 0;//总记录数
    43                     for (int i = 1; i <= totalpagers; i++)
    44                         itemCount.Add(i);
    45                     PagedCollectionView pcv = new PagedCollectionView(itemCount);
    46                     pcv.PageSize = PageSize;
    47                     this.PagerBar.Source = pcv; //这儿会自动触发this.dataPager1.PageIndexChanged事件
    48                 }
    49                 PagedCollectionView view = new PagedCollectionView(current);
    50                 this.GridListData.ItemsSource = view;
    51             }
    52         }
    53        
    54     }
  • 相关阅读:
    python 面向对象专题(20):基础(11)多态/封装
    python 面向对象专题(19):基础(10)-继承
    python 面向对象专题(18):基础(9)面向对象应用
    python 面向对象专题(17):基础(8)面向对象基础
    机器学习sklearn(92):算法实例(49)分类(30)XGBoost(六)XGBoost应用中的其他问题
    机器学习sklearn(91):算法实例(48)分类(27)XGBoost(五)XGBoost的智慧(二)参数alpha,lambda
    基于小熊派Hi3861鸿蒙开发的IoT物联网学习【四】
    基于小熊派Hi3861鸿蒙开发的IoT物联网学习【三】
    基于小熊派Hi3861鸿蒙开发的IoT物联网学习【二】
    C语言学习之基本数据类型【一】
  • 原文地址:https://www.cnblogs.com/LYunF/p/2802621.html
Copyright © 2020-2023  润新知