committed by
GitHub
7 changed files with 642 additions and 89 deletions
@ -1,69 +1,294 @@ |
|||
<Styles xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> |
|||
<Design.PreviewWith> |
|||
<Border Padding="20"> |
|||
<CheckBox IsThreeState="True" IsChecked="True" /> |
|||
</Border> |
|||
</Design.PreviewWith> |
|||
<Style Selector="CheckBox"> |
|||
<Setter Property="Foreground" Value="{DynamicResource ThemeForegroundBrush}"/> |
|||
<Setter Property="Background" Value="Transparent"/> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource ThemeBorderMidBrush}"/> |
|||
<Setter Property="BorderThickness" Value="{DynamicResource ThemeBorderThickness}"/> |
|||
<Setter Property="Padding" Value="4,0,0,0"/> |
|||
<Setter Property="VerticalContentAlignment" Value="Center"/> |
|||
<Setter Property="HorizontalContentAlignment" Value="Left"/> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundUnchecked}" /> |
|||
<Setter Property="Foreground" Value="{DynamicResource CheckBoxForegroundUnchecked}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushUnchecked}" /> |
|||
<Setter Property="Padding" Value="8,5,0,0" /> |
|||
<Setter Property="HorizontalAlignment" Value="Left" /> |
|||
<Setter Property="VerticalAlignment" Value="Center" /> |
|||
<Setter Property="HorizontalContentAlignment" Value="Left" /> |
|||
<Setter Property="VerticalContentAlignment" Value="Top" /> |
|||
<Setter Property="FontFamily" Value="{DynamicResource ContentControlThemeFontFamily}" /> |
|||
<Setter Property="FontSize" Value="{DynamicResource ControlContentThemeFontSize}" /> |
|||
<Setter Property="MinWidth" Value="120" /> |
|||
<Setter Property="MinHeight" Value="32" /> |
|||
<!--<Setter Property="UseSystemFocusVisuals" Value="{StaticResource UseSystemFocusVisuals}" /> |
|||
<Setter Property="FocusVisualMargin" Value="-7,-3,-7,-3" />--> |
|||
<Setter Property="Template"> |
|||
<ControlTemplate> |
|||
<Grid ColumnDefinitions="Auto,*"> |
|||
<Border Name="border" |
|||
Background="{TemplateBinding Background}" |
|||
BorderBrush="{TemplateBinding BorderBrush}" |
|||
BorderThickness="{TemplateBinding BorderThickness}" |
|||
Width="18" |
|||
Height="18" |
|||
VerticalAlignment="Center"> |
|||
<Panel> |
|||
<Path Name="checkMark" |
|||
Fill="{DynamicResource HighlightBrush}" |
|||
Width="11" |
|||
Height="10" |
|||
Stretch="Uniform" |
|||
HorizontalAlignment="Center" |
|||
VerticalAlignment="Center" |
|||
Data="M 1145.607177734375,430 C1145.607177734375,430 1141.449951171875,435.0772705078125 1141.449951171875,435.0772705078125 1141.449951171875,435.0772705078125 1139.232177734375,433.0999755859375 1139.232177734375,433.0999755859375 1139.232177734375,433.0999755859375 1138,434.5538330078125 1138,434.5538330078125 1138,434.5538330078125 1141.482177734375,438 1141.482177734375,438 1141.482177734375,438 1141.96875,437.9375 1141.96875,437.9375 1141.96875,437.9375 1147,431.34619140625 1147,431.34619140625 1147,431.34619140625 1145.607177734375,430 1145.607177734375,430 z"/> |
|||
<Rectangle Name="indeterminateMark" |
|||
Fill="{DynamicResource HighlightBrush}" |
|||
Width="10" |
|||
Height="10" |
|||
Stretch="Uniform" |
|||
HorizontalAlignment="Center" |
|||
VerticalAlignment="Center"/> |
|||
</Panel> |
|||
</Border> |
|||
<ContentPresenter Name="PART_ContentPresenter" |
|||
TextBlock.Foreground="{TemplateBinding Foreground}" |
|||
ContentTemplate="{TemplateBinding ContentTemplate}" |
|||
Content="{TemplateBinding Content}" |
|||
Margin="{TemplateBinding Padding}" |
|||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" |
|||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" |
|||
IsVisible="{TemplateBinding Content, Converter={x:Static ObjectConverters.IsNotNull}}" |
|||
Grid.Column="1"/> |
|||
<Grid x:Name="RootGrid" ColumnDefinitions="20,*"> |
|||
<Border x:Name="PART_Border" Background="{TemplateBinding Background}" |
|||
BorderBrush="{TemplateBinding BorderBrush}" |
|||
BorderThickness="{TemplateBinding BorderThickness}" |
|||
CornerRadius="{DynamicResource ControlCornerRadius}" /> |
|||
|
|||
<Grid VerticalAlignment="Top" Height="32"> |
|||
<Border x:Name="NormalRectangle" |
|||
BorderThickness="{DynamicResource CheckBoxBorderThemeThickness}" |
|||
UseLayoutRounding="False" |
|||
Height="20" |
|||
Width="20" |
|||
CornerRadius="{DynamicResource ControlCornerRadius}" /> |
|||
|
|||
<Viewbox UseLayoutRounding="False"> |
|||
<Panel> |
|||
<Panel Height="16" Width="16" /> |
|||
<Path x:Name="CheckGlyph" Stretch="Uniform" VerticalAlignment="Center" /> |
|||
</Panel> |
|||
</Viewbox> |
|||
</Grid> |
|||
<ContentPresenter x:Name="ContentPresenter" |
|||
ContentTemplate="{TemplateBinding ContentTemplate}" |
|||
Content="{TemplateBinding Content}" |
|||
Margin="{TemplateBinding Padding}" |
|||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" |
|||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" |
|||
Grid.Column="1" /> |
|||
<!-- TODO: TextWrapping="Wrap" on contentpresenter --> |
|||
</Grid> |
|||
</ControlTemplate> |
|||
</Setter> |
|||
</Style> |
|||
<Style Selector="CheckBox:pointerover /template/ Border#border"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource ThemeBorderHighBrush}"/> |
|||
|
|||
<!-- Unchecked Normal State --> |
|||
<Style Selector="CheckBox /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundUnchecked}" /> |
|||
</Style> |
|||
<Style Selector="CheckBox /template/ Path#checkMark"> |
|||
<Setter Property="IsVisible" Value="False"/> |
|||
|
|||
<Style Selector="CheckBox /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundUnchecked}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushUnchecked}" /> |
|||
</Style> |
|||
<Style Selector="CheckBox /template/ Rectangle#indeterminateMark"> |
|||
<Setter Property="IsVisible" Value="False"/> |
|||
|
|||
<Style Selector="CheckBox /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeUnchecked}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillUnchecked}" /> |
|||
</Style> |
|||
<Style Selector="CheckBox:checked /template/ Path#checkMark"> |
|||
<Setter Property="IsVisible" Value="True"/> |
|||
|
|||
<Style Selector="CheckBox /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundUnchecked}" /> |
|||
<Setter Property="Opacity" Value="0" /> |
|||
</Style> |
|||
<Style Selector="CheckBox:indeterminate /template/ Rectangle#indeterminateMark"> |
|||
<Setter Property="IsVisible" Value="True"/> |
|||
|
|||
<!-- Unchecked PointerOver State --> |
|||
<Style Selector="CheckBox:pointerover /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundUncheckedPointerOver}" /> |
|||
</Style> |
|||
<Style Selector="CheckBox:disabled /template/ Border#border"> |
|||
<Setter Property="Opacity" Value="{DynamicResource ThemeDisabledOpacity}"/> |
|||
|
|||
<Style Selector="CheckBox:pointerover /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundUncheckedPointerOver}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushUncheckedPointerOver}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:pointerover /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeUncheckedPointerOver}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillUncheckedPointerOver}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:pointerover /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundUncheckedPointerOver}" /> |
|||
</Style> |
|||
|
|||
<!-- Unchecked Pressed State --> |
|||
<Style Selector="CheckBox:pressed /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundUncheckedPressed}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:pressed /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundUncheckedPressed}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushUncheckedPressed}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:pressed /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeUncheckedPressed}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillUncheckedPressed}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:pressed /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundUncheckedPressed}" /> |
|||
</Style> |
|||
|
|||
<!-- Unchecked Disabled state --> |
|||
<Style Selector="CheckBox:disabled /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundUncheckedDisabled}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:disabled /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundUncheckedDisabled}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushUncheckedDisabled}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:disabled /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeUncheckedDisabled}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillUncheckedDisabled}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:disabled /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundUncheckedDisabled}" /> |
|||
</Style> |
|||
|
|||
|
|||
<!-- Checked Normal State --> |
|||
<Style Selector="CheckBox:checked /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundChecked}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundChecked}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushChecked}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundFillChecked}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillChecked}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundChecked}" /> |
|||
<Setter Property="Data" Value="M1507 31L438 1101L-119 543L-29 453L438 919L1417 -59L1507 31Z" /> |
|||
<Setter Property="Width" Value="9" /> |
|||
<Setter Property="Opacity" Value="1" /> |
|||
</Style> |
|||
|
|||
<!-- Checked PointerOver State --> |
|||
<Style Selector="CheckBox:checked:pointerover /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundCheckedPointerOver}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked:pointerover /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundCheckedPointerOver}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushCheckedPointerOver}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked:pointerover /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeCheckedPointerOver}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillCheckedPointerOver}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked:pointerover /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundCheckedPointerOver}" /> |
|||
</Style> |
|||
|
|||
<!-- Checked Pressed State --> |
|||
<Style Selector="CheckBox:checked:pressed /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundCheckedPressed}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked:pressed /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundCheckedPressed}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushCheckedPressed}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked:pressed /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeCheckedPressed}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillCheckedPressed}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked:pressed /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundCheckedPressed}" /> |
|||
</Style> |
|||
|
|||
<!-- Checked Disabled State --> |
|||
<Style Selector="CheckBox:checked:disabled /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundCheckedDisabled}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked:disabled /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundCheckedDisabled}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushCheckedDisabled}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked:disabled /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeCheckedDisabled}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillCheckedDisabled}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:checked:disabled /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundCheckedDisabled}" /> |
|||
</Style> |
|||
|
|||
|
|||
<!-- Indeterminate Normal State --> |
|||
<Style Selector="CheckBox:indeterminate /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundIndeterminate}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundIndeterminate}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushIndeterminate}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeIndeterminate}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillIndeterminate}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundIndeterminate}" /> |
|||
<Setter Property="Data" Value="M1536 1536v-1024h-1024v1024h1024z" /> |
|||
<Setter Property="Width" Value="7" /> |
|||
<Setter Property="Opacity" Value="1" /> |
|||
</Style> |
|||
|
|||
<!-- Indeterminate PointerOver State --> |
|||
<Style Selector="CheckBox:indeterminate:pointerover /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundIndeterminatePointerOver}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate:pointerover /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundIndeterminatePointerOver}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushIndeterminatePointerOver}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate:pointerover /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeIndeterminatePointerOver}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillIndeterminatePointerOver}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate:pointerover /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundIndeterminatePointerOver}" /> |
|||
</Style> |
|||
|
|||
<!-- Indeterminate Pressed State --> |
|||
<Style Selector="CheckBox:indeterminate:pressed /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundIndeterminatePressed}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate:pressed /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundIndeterminatePressed}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushIndeterminatePressed}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate:pressed /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeIndeterminatePressed}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillIndeterminatePressed}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate:pressed /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundIndeterminatePressed}" /> |
|||
</Style> |
|||
|
|||
<!-- Indeterminate Disabled State --> |
|||
<Style Selector="CheckBox:indeterminate:disabled /template/ ContentPresenter#ContentPresenter"> |
|||
<Setter Property="TextBlock.Foreground" Value="{DynamicResource CheckBoxForegroundIndeterminateDisabled}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate:disabled /template/ Border#PART_Border"> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxBackgroundIndeterminateDisabled}" /> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxBorderBrushIndeterminateDisabled}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate:disabled /template/ Border#NormalRectangle"> |
|||
<Setter Property="BorderBrush" Value="{DynamicResource CheckBoxCheckBackgroundStrokeIndeterminateDisabled}" /> |
|||
<Setter Property="Background" Value="{DynamicResource CheckBoxCheckBackgroundFillIndeterminateDisabled}" /> |
|||
</Style> |
|||
|
|||
<Style Selector="CheckBox:indeterminate:disabled /template/ Path#CheckGlyph"> |
|||
<Setter Property="Fill" Value="{DynamicResource CheckBoxCheckGlyphForegroundIndeterminateDisabled}" /> |
|||
</Style> |
|||
</Styles> |
|||
|
|||
Loading…
Reference in new issue