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     }

 

 

posted @ 2012-12-05 10:50  狄大人  阅读(1354)  评论(5编辑  收藏  举报