PipsPagerCustomButtonThemesPage.xaml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <UserControl xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. x:Class="ControlCatalog.Pages.PipsPagerCustomButtonThemesPage">
  4. <DockPanel>
  5. <ScrollViewer DockPanel.Dock="Right" Width="220">
  6. <StackPanel Margin="12" Spacing="8">
  7. <TextBlock Text="Custom Button Themes" FontSize="16" FontWeight="SemiBold"
  8. Foreground="{DynamicResource SystemControlHighlightAccentBrush}" />
  9. <TextBlock TextWrapping="Wrap" FontSize="12" Opacity="0.7"
  10. Text="Replace the default chevron navigation buttons with custom button themes using PreviousButtonTheme and NextButtonTheme." />
  11. <Separator />
  12. <TextBlock Text="Properties" FontSize="13" FontWeight="SemiBold" />
  13. <TextBlock FontSize="12" TextWrapping="Wrap" Text="PreviousButtonTheme" />
  14. <TextBlock FontSize="12" TextWrapping="Wrap" Text="NextButtonTheme" />
  15. <TextBlock FontSize="12" TextWrapping="Wrap" Text="IsPreviousButtonVisible" />
  16. <TextBlock FontSize="12" TextWrapping="Wrap" Text="IsNextButtonVisible" />
  17. </StackPanel>
  18. </ScrollViewer>
  19. <Border DockPanel.Dock="Right" Width="1"
  20. Background="{DynamicResource SystemControlForegroundBaseMediumLowBrush}" />
  21. <StackPanel Spacing="24" Margin="24">
  22. <StackPanel Spacing="8">
  23. <TextBlock Text="Text Buttons" FontWeight="SemiBold" FontSize="14" />
  24. <PipsPager NumberOfPages="5" MaxVisiblePips="5"
  25. IsPreviousButtonVisible="True" IsNextButtonVisible="True">
  26. <PipsPager.Resources>
  27. <ControlTheme x:Key="CustomPreviousButtonTheme" TargetType="Button">
  28. <Setter Property="Content" Value="Prev" />
  29. <Setter Property="Background" Value="LightGray" />
  30. <Setter Property="Foreground" Value="Black" />
  31. <Setter Property="Padding" Value="8,2" />
  32. <Setter Property="Margin" Value="0,0,8,0" />
  33. <Setter Property="Template">
  34. <ControlTemplate>
  35. <Border Background="{TemplateBinding Background}" CornerRadius="4">
  36. <ContentPresenter Content="{TemplateBinding Content}" Margin="{TemplateBinding Padding}" />
  37. </Border>
  38. </ControlTemplate>
  39. </Setter>
  40. </ControlTheme>
  41. <ControlTheme x:Key="CustomNextButtonTheme" TargetType="Button">
  42. <Setter Property="Content" Value="Next" />
  43. <Setter Property="Background" Value="LightGray" />
  44. <Setter Property="Foreground" Value="Black" />
  45. <Setter Property="Padding" Value="8,2" />
  46. <Setter Property="Margin" Value="8,0,0,0" />
  47. <Setter Property="Template">
  48. <ControlTemplate>
  49. <Border Background="{TemplateBinding Background}" CornerRadius="4">
  50. <ContentPresenter Content="{TemplateBinding Content}" Margin="{TemplateBinding Padding}" />
  51. </Border>
  52. </ControlTemplate>
  53. </Setter>
  54. </ControlTheme>
  55. </PipsPager.Resources>
  56. <PipsPager.PreviousButtonTheme>
  57. <StaticResource ResourceKey="CustomPreviousButtonTheme" />
  58. </PipsPager.PreviousButtonTheme>
  59. <PipsPager.NextButtonTheme>
  60. <StaticResource ResourceKey="CustomNextButtonTheme" />
  61. </PipsPager.NextButtonTheme>
  62. </PipsPager>
  63. </StackPanel>
  64. <StackPanel Spacing="8">
  65. <TextBlock Text="Hidden Buttons" FontWeight="SemiBold" FontSize="14" />
  66. <PipsPager NumberOfPages="7"
  67. MaxVisiblePips="7"
  68. IsPreviousButtonVisible="False"
  69. IsNextButtonVisible="False" />
  70. </StackPanel>
  71. </StackPanel>
  72. </DockPanel>
  73. </UserControl>