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 }