fix: simplify checkbox layout.

This commit is contained in:
rabbitism 2023-02-09 22:43:55 +08:00
parent 0698046904
commit bef55df65b
3 changed files with 21 additions and 18 deletions

View File

@ -36,18 +36,12 @@
BorderThickness="{DynamicResource CheckboxBoxBorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
UseLayoutRounding="False" />
<PathIcon
Name="CheckGlyph"
Width="{DynamicResource CheckboxBoxGlyphWidth}"
Height="{DynamicResource CheckboxBoxGlyphHeight}"
Foreground="{DynamicResource CheckboxGlyphFill}" />
<Viewbox Height="{DynamicResource CheckboxBoxWidth}" UseLayoutRounding="False">
<Panel>
<Panel Width="{DynamicResource CheckboxBoxWidth}" Height="{DynamicResource CheckboxBoxWidth}" />
<Path
x:Name="CheckGlyph"
VerticalAlignment="Center"
Fill="{DynamicResource CheckboxGlyphFill}"
Opacity="0"
Stretch="Uniform" />
</Panel>
</Viewbox>
</Grid>
<ContentPresenter
x:Name="ContentPresenter"
@ -96,9 +90,8 @@
<Setter Property="Background" Value="{DynamicResource CheckboxCheckedDefaultBackground}" />
</Style>
<Style Selector="^ /template/ Path#CheckGlyph">
<Setter Property="Data" Value="M17.4111 7.30848C18.0692 7.81171 18.1947 8.75312 17.6915 9.41119L11.1915 17.9112C10.909 18.2806 10.4711 18.4981 10.0061 18.5C9.54105 18.5019 9.10143 18.288 8.81592 17.9209L5.31592 13.4209C4.80731 12.767 4.92512 11.8246 5.57904 11.316C6.23296 10.8074 7.17537 10.9252 7.68398 11.5791L9.98988 14.5438L15.3084 7.58884C15.8116 6.93077 16.7531 6.80525 17.4111 7.30848Z" />
<Setter Property="Width" Value="9" />
<Style Selector="^ /template/ PathIcon#CheckGlyph">
<Setter Property="Data" Value="{DynamicResource CheckBoxCheckGlyph}" />
<Setter Property="Opacity" Value="1" />
</Style>
@ -140,9 +133,8 @@
<Setter Property="Background" Value="{DynamicResource CheckboxCheckedDefaultBackground}" />
</Style>
<Style Selector="^ /template/ Path#CheckGlyph">
<Setter Property="Data" Value="M5 12.5C5 11.6716 5.67157 11 6.5 11H17.5C18.3284 11 19 11.6716 19 12.5C19 13.3284 18.3284 14 17.5 14H6.5C5.67157 14 5 13.3284 5 12.5Z" />
<Setter Property="Width" Value="9" />
<Style Selector="^ /template/ PathIcon#CheckGlyph">
<Setter Property="Data" Value="{DynamicResource CheckBoxIndeterminateGlyph}" />
<Setter Property="Opacity" Value="1" />
</Style>

View File

@ -30,9 +30,14 @@
<sys:Double x:Key="CheckboxFontSize">14</sys:Double>
<sys:Double x:Key="CheckboxBoxWidth">16</sys:Double>
<sys:Double x:Key="CheckboxBoxHeight">16</sys:Double>
<sys:Double x:Key="CheckboxBoxGlyphWidth">12</sys:Double>
<sys:Double x:Key="CheckboxBoxGlyphHeight">12</sys:Double>
<FontWeight x:Key="CheckboxFontWeight">400</FontWeight>
<CornerRadius x:Key="CheckboxBoxCornerRadius">3</CornerRadius>
<Thickness x:Key="CheckboxContentMargin">8 0 0 0</Thickness>
<Thickness x:Key="CheckboxBoxBorderThickness">1</Thickness>
<PathGeometry x:Key="CheckBoxCheckGlyph">M17.4111 7.30848C18.0692 7.81171 18.1947 8.75312 17.6915 9.41119L11.1915 17.9112C10.909 18.2806 10.4711 18.4981 10.0061 18.5C9.54105 18.5019 9.10143 18.288 8.81592 17.9209L5.31592 13.4209C4.80731 12.767 4.92512 11.8246 5.57904 11.316C6.23296 10.8074 7.17537 10.9252 7.68398 11.5791L9.98988 14.5438L15.3084 7.58884C15.8116 6.93077 16.7531 6.80525 17.4111 7.30848Z</PathGeometry>
<PathGeometry x:Key="CheckBoxIndeterminateGlyph">M5 12.5C5 11.6716 5.67157 11 6.5 11H17.5C18.3284 11 19 11.6716 19 12.5C19 13.3284 18.3284 14 17.5 14H6.5C5.67157 14 5 13.3284 5 12.5Z</PathGeometry>
</ResourceDictionary>

View File

@ -1,5 +1,6 @@
<ResourceDictionary
xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=System.Runtime">
<SolidColorBrush x:Key="CheckboxForeground" Color="#1C1F23" />
<SolidColorBrush x:Key="CheckboxDisabledForeground" Opacity="0.35" Color="#1C1F23" />
@ -29,9 +30,14 @@
<sys:Double x:Key="CheckboxFontSize">14</sys:Double>
<sys:Double x:Key="CheckboxBoxWidth">16</sys:Double>
<sys:Double x:Key="CheckboxBoxHeight">16</sys:Double>
<sys:Double x:Key="CheckboxBoxGlyphWidth">12</sys:Double>
<sys:Double x:Key="CheckboxBoxGlyphHeight">12</sys:Double>
<FontWeight x:Key="CheckboxFontWeight">400</FontWeight>
<CornerRadius x:Key="CheckboxBoxCornerRadius">3</CornerRadius>
<Thickness x:Key="CheckboxContentMargin">8 0 0 0</Thickness>
<Thickness x:Key="CheckboxBoxBorderThickness">1</Thickness>
<PathGeometry x:Key="CheckBoxCheckGlyph">M17.4111 7.30848C18.0692 7.81171 18.1947 8.75312 17.6915 9.41119L11.1915 17.9112C10.909 18.2806 10.4711 18.4981 10.0061 18.5C9.54105 18.5019 9.10143 18.288 8.81592 17.9209L5.31592 13.4209C4.80731 12.767 4.92512 11.8246 5.57904 11.316C6.23296 10.8074 7.17537 10.9252 7.68398 11.5791L9.98988 14.5438L15.3084 7.58884C15.8116 6.93077 16.7531 6.80525 17.4111 7.30848Z</PathGeometry>
<PathGeometry x:Key="CheckBoxIndeterminateGlyph">M5 12.5C5 11.6716 5.67157 11 6.5 11H17.5C18.3284 11 19 11.6716 19 12.5C19 13.3284 18.3284 14 17.5 14H6.5C5.67157 14 5 13.3284 5 12.5Z</PathGeometry>
</ResourceDictionary>