feat: improve readonly mode.
This commit is contained in:
@@ -31,5 +31,6 @@
|
|||||||
|
|
||||||
<TextBlock Text="Tiny Pagination"/>
|
<TextBlock Text="Tiny Pagination"/>
|
||||||
<u:Pagination Theme="{DynamicResource TinyPagination}" TotalCount="100" PageSize="1"/>
|
<u:Pagination Theme="{DynamicResource TinyPagination}" TotalCount="100" PageSize="1"/>
|
||||||
|
<u:Pagination Classes="ReadOnly" Theme="{DynamicResource TinyPagination}" TotalCount="100" PageSize="1"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -8,44 +8,36 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Design.PreviewWith>
|
</Design.PreviewWith>
|
||||||
<!-- Add Resources Here -->
|
<!-- Add Resources Here -->
|
||||||
<ControlTheme x:Key="{x:Type u:Pagination}"
|
<ControlTheme x:Key="{x:Type u:Pagination}" TargetType="u:Pagination">
|
||||||
TargetType="u:Pagination">
|
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate TargetType="u:Pagination">
|
<ControlTemplate TargetType="u:Pagination">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<u:PaginationButton
|
<u:PaginationButton Name="{x:Static u:Pagination.PART_PreviousButton}" u:DisabledAdorner.IsEnabled="True">
|
||||||
u:DisabledAdorner.IsEnabled="True"
|
|
||||||
Name="{x:Static u:Pagination.PART_PreviousButton}">
|
|
||||||
<PathIcon
|
<PathIcon
|
||||||
Width="12"
|
Width="12"
|
||||||
Height="12"
|
Height="12"
|
||||||
Data="{DynamicResource PaginationBackwardGlyph}"
|
Data="{DynamicResource PaginationBackwardGlyph}"
|
||||||
Foreground="{DynamicResource PaginationButtonIconForeground}" />
|
Foreground="{DynamicResource PaginationButtonIconForeground}" />
|
||||||
</u:PaginationButton>
|
</u:PaginationButton>
|
||||||
<StackPanel
|
<StackPanel Name="{x:Static u:Pagination.PART_ButtonPanel}" Orientation="Horizontal" />
|
||||||
Name="{x:Static u:Pagination.PART_ButtonPanel}"
|
<u:PaginationButton Name="{x:Static u:Pagination.PART_NextButton}" u:DisabledAdorner.IsEnabled="True">
|
||||||
Orientation="Horizontal" />
|
|
||||||
<u:PaginationButton
|
|
||||||
u:DisabledAdorner.IsEnabled="True"
|
|
||||||
Name="{x:Static u:Pagination.PART_NextButton}">
|
|
||||||
<PathIcon
|
<PathIcon
|
||||||
Width="12"
|
Width="12"
|
||||||
Height="12"
|
Height="12"
|
||||||
Data="{DynamicResource PaginationForwardGlyph}"
|
Data="{DynamicResource PaginationForwardGlyph}"
|
||||||
Foreground="{DynamicResource PaginationButtonIconForeground}" />
|
Foreground="{DynamicResource PaginationButtonIconForeground}" />
|
||||||
</u:PaginationButton>
|
</u:PaginationButton>
|
||||||
<StackPanel Orientation="Horizontal"
|
<StackPanel IsVisible="{TemplateBinding ShowQuickJump}" Orientation="Horizontal">
|
||||||
IsVisible="{TemplateBinding ShowQuickJump}">
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="4 0"
|
Margin="4,0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Text="{DynamicResource STRING_PAGINATION_JUMP_TO}" />
|
Text="{DynamicResource STRING_PAGINATION_JUMP_TO}" />
|
||||||
<u:NumericIntUpDown
|
<u:NumericIntUpDown
|
||||||
x:Name="{x:Static u:Pagination.PART_QuickJumpInput}"
|
x:Name="{x:Static u:Pagination.PART_QuickJumpInput}"
|
||||||
ShowButtonSpinner="False"
|
Width="50"
|
||||||
Width="50" />
|
ShowButtonSpinner="False" />
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="4 0"
|
Margin="4,0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Text="{DynamicResource STRING_PAGINATION_PAGE}" />
|
Text="{DynamicResource STRING_PAGINATION_PAGE}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@@ -59,39 +51,45 @@
|
|||||||
</Setter>
|
</Setter>
|
||||||
</ControlTheme>
|
</ControlTheme>
|
||||||
|
|
||||||
<ControlTheme x:Key="TinyPagination"
|
<ControlTheme x:Key="TinyPagination" TargetType="{x:Type u:Pagination}">
|
||||||
TargetType="{x:Type u:Pagination}">
|
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate TargetType="u:Pagination">
|
<ControlTemplate TargetType="u:Pagination">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<u:PaginationButton
|
<u:PaginationButton Name="{x:Static u:Pagination.PART_PreviousButton}" u:DisabledAdorner.IsEnabled="True">
|
||||||
u:DisabledAdorner.IsEnabled="True"
|
|
||||||
Name="{x:Static u:Pagination.PART_PreviousButton}">
|
|
||||||
<PathIcon
|
<PathIcon
|
||||||
Width="12"
|
Width="12"
|
||||||
Height="12"
|
Height="12"
|
||||||
Data="{DynamicResource PaginationBackwardGlyph}"
|
Data="{DynamicResource PaginationBackwardGlyph}"
|
||||||
Foreground="{DynamicResource PaginationButtonIconForeground}" />
|
Foreground="{DynamicResource PaginationButtonIconForeground}" />
|
||||||
</u:PaginationButton>
|
</u:PaginationButton>
|
||||||
<StackPanel Orientation="Horizontal">
|
<Grid ColumnDefinitions="*, Auto, *">
|
||||||
<u:NumericIntUpDown
|
<u:NumericIntUpDown
|
||||||
Name="PART_PageInput"
|
Name="PART_PageInput"
|
||||||
Value="{TemplateBinding CurrentPage, Mode=TwoWay}"
|
Grid.Column="0"
|
||||||
ShowButtonSpinner="False"
|
|
||||||
HorizontalContentAlignment="Center"
|
|
||||||
MinWidth="{Binding $self.Bounds.Height}"
|
MinWidth="{Binding $self.Bounds.Height}"
|
||||||
VerticalAlignment="Center" />
|
VerticalAlignment="Center"
|
||||||
<TextBlock Name="PART_PageTextBlock" Text="{TemplateBinding CurrentPage}" VerticalAlignment="Center" IsVisible="False"/>
|
HorizontalContentAlignment="Center"
|
||||||
<TextBlock Text="/"
|
ShowButtonSpinner="False"
|
||||||
Margin="8 0"
|
IsVisible="True"
|
||||||
VerticalAlignment="Center" />
|
Value="{TemplateBinding CurrentPage,
|
||||||
|
Mode=TwoWay}" />
|
||||||
|
<TextBlock
|
||||||
|
Name="PART_PageTextBlock"
|
||||||
|
Grid.Column="0"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
IsVisible="False"
|
||||||
|
Text="{TemplateBinding CurrentPage}" />
|
||||||
|
<TextBlock
|
||||||
|
Grid.Column="1"
|
||||||
|
Margin="8,0"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Text="/" />
|
||||||
<SelectableTextBlock
|
<SelectableTextBlock
|
||||||
Text="{TemplateBinding PageCount}"
|
Grid.Column="2"
|
||||||
VerticalAlignment="Center" />
|
VerticalAlignment="Center"
|
||||||
</StackPanel>
|
Text="{TemplateBinding PageCount}" />
|
||||||
<u:PaginationButton
|
</Grid>
|
||||||
u:DisabledAdorner.IsEnabled="True"
|
<u:PaginationButton Name="{x:Static u:Pagination.PART_NextButton}" u:DisabledAdorner.IsEnabled="True">
|
||||||
Name="{x:Static u:Pagination.PART_NextButton}">
|
|
||||||
<PathIcon
|
<PathIcon
|
||||||
Width="12"
|
Width="12"
|
||||||
Height="12"
|
Height="12"
|
||||||
@@ -102,28 +100,23 @@
|
|||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
</Setter>
|
</Setter>
|
||||||
<Style Selector="^.ReadOnly /template/ TextBlock#PART_PageTextBlock">
|
<Style Selector="^.ReadOnly /template/ TextBlock#PART_PageTextBlock">
|
||||||
<Setter Property="IsVisible" Value="True"></Setter>
|
<Setter Property="IsVisible" Value="True" />
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^.ReadOnly /template/ u|NumericIntUpDown#PART_PageInput">
|
<Style Selector="^.ReadOnly /template/ u|NumericUpDown#PART_PageInput">
|
||||||
<Setter Property="IsVisible" Value="False"></Setter>
|
<Setter Property="IsVisible" Value="False" />
|
||||||
</Style>
|
</Style>
|
||||||
</ControlTheme>
|
</ControlTheme>
|
||||||
|
|
||||||
<ControlTheme x:Key="{x:Type u:PaginationButton}"
|
<ControlTheme x:Key="{x:Type u:PaginationButton}" TargetType="u:PaginationButton">
|
||||||
TargetType="u:PaginationButton">
|
<Setter Property="Content" Value="{Binding $self.Page}" />
|
||||||
<Setter Property="Content"
|
|
||||||
Value="{Binding $self.Page}" />
|
|
||||||
<Setter Property="BorderBrush" Value="Transparent" />
|
<Setter Property="BorderBrush" Value="Transparent" />
|
||||||
<Setter Property="MinWidth" Value="32" />
|
<Setter Property="MinWidth" Value="32" />
|
||||||
<Setter Property="MinHeight" Value="32" />
|
<Setter Property="MinHeight" Value="32" />
|
||||||
<Setter Property="Background"
|
<Setter Property="Background" Value="{DynamicResource PaginationButtonDefaultBackground}" />
|
||||||
Value="{DynamicResource PaginationButtonDefaultBackground}" />
|
<Setter Property="Foreground" Value="{DynamicResource PaginationButtonDefaultForeground}" />
|
||||||
<Setter Property="Foreground"
|
|
||||||
Value="{DynamicResource PaginationButtonDefaultForeground}" />
|
|
||||||
<Setter Property="Cursor" Value="Hand" />
|
<Setter Property="Cursor" Value="Hand" />
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<ControlTemplate
|
<ControlTemplate TargetType="u:PaginationButton">
|
||||||
TargetType="u:PaginationButton">
|
|
||||||
<Border
|
<Border
|
||||||
Padding="4"
|
Padding="4"
|
||||||
Background="{TemplateBinding Background}"
|
Background="{TemplateBinding Background}"
|
||||||
@@ -140,12 +133,10 @@
|
|||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
</Setter>
|
</Setter>
|
||||||
<Style Selector="^:pointerover">
|
<Style Selector="^:pointerover">
|
||||||
<Setter Property="Background"
|
<Setter Property="Background" Value="{DynamicResource PaginationButtonPointeroverBackground}" />
|
||||||
Value="{DynamicResource PaginationButtonPointeroverBackground}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^:pressed">
|
<Style Selector="^:pressed">
|
||||||
<Setter Property="Background"
|
<Setter Property="Background" Value="{DynamicResource PaginationButtonPressedBackground}" />
|
||||||
Value="{DynamicResource PaginationButtonPressedBackground}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^:left">
|
<Style Selector="^:left">
|
||||||
<Setter Property="Content">
|
<Setter Property="Content">
|
||||||
@@ -192,12 +183,9 @@
|
|||||||
</Style>
|
</Style>
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="^:selected">
|
<Style Selector="^:selected">
|
||||||
<Setter Property="Background"
|
<Setter Property="Background" Value="{DynamicResource PaginationButtonSelectedBackground}" />
|
||||||
Value="{DynamicResource PaginationButtonSelectedBackground}" />
|
<Setter Property="Foreground" Value="{DynamicResource PaginationButtonSelectedForeground}" />
|
||||||
<Setter Property="Foreground"
|
<Setter Property="FontWeight" Value="{DynamicResource TextBlockTitleFontWeight}" />
|
||||||
Value="{DynamicResource PaginationButtonSelectedForeground}" />
|
|
||||||
<Setter Property="FontWeight"
|
|
||||||
Value="{DynamicResource TextBlockTitleFontWeight}" />
|
|
||||||
</Style>
|
</Style>
|
||||||
</ControlTheme>
|
</ControlTheme>
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using Avalonia.Controls.Metadata;
|
|||||||
namespace Ursa.Controls;
|
namespace Ursa.Controls;
|
||||||
|
|
||||||
[PseudoClasses(PC_Left, PC_Right, PC_Selected)]
|
[PseudoClasses(PC_Left, PC_Right, PC_Selected)]
|
||||||
public class PaginationButton: Button
|
public class PaginationButton: RepeatButton
|
||||||
{
|
{
|
||||||
public const string PC_Left = ":left";
|
public const string PC_Left = ":left";
|
||||||
public const string PC_Right = ":right";
|
public const string PC_Right = ":right";
|
||||||
|
|||||||
Reference in New Issue
Block a user