Fix Button Icon disabled style

This commit is contained in:
chinboy
2025-11-26 15:26:29 +08:00
parent dfbc58f79b
commit a044364de4
19 changed files with 188 additions and 136 deletions
@@ -29,7 +29,7 @@
<WrapPanel HorizontalAlignment="Left" Orientation="Horizontal" Margin="0, 0, 0, 20">
<atom:Button ButtonType="Primary">Primary</atom:Button>
<atom:Button>Default</atom:Button>
<atom:Button ButtonType="Text">Text</atom:Button>
<atom:Button ButtonType="Link">Link</atom:Button>
</WrapPanel>
@@ -51,8 +51,7 @@
<gallerycontrols:ShowCaseItem
Title="Size"
Description="AtomUI supports three sizes of buttons: small, default and large.
If a large or small button is desired, set the size property to either large or small respectively. Omit the size property for a button with the default size.">
Description="AtomUI supports three sizes of buttons: small, default and large.If a large or small button is desired, set the size property to either large or small respectively. Omit the size property for a button with the default size.">
<DockPanel Margin="0, 0, 0, 0">
<StackPanel Orientation="Horizontal" Spacing="5" DockPanel.Dock="Top">
<atom:TextBlock VerticalAlignment="Center">Expand direction:</atom:TextBlock>
@@ -104,33 +103,41 @@ If a large or small button is desired, set the size property to either large or
Description="You can add an icon through the icon property and adjust the position of the icon using iconPosition.">
<StackPanel Orientation="Vertical">
<WrapPanel HorizontalAlignment="Left" Orientation="Horizontal">
<atom:Button ButtonType="Primary" Shape="Circle" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}" />
<atom:Button ButtonType="Primary" Shape="Circle"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}" />
<atom:Button ButtonType="Primary" Shape="Round"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Search
</atom:Button>
<atom:Button ButtonType="Default" Shape="Circle" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}" />
<atom:Button ButtonType="Default" Shape="Round" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
<atom:Button ButtonType="Default" Shape="Circle"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}" />
<atom:Button ButtonType="Default" Shape="Round"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Search
</atom:Button>
<atom:Button ButtonType="Text" Shape="Default" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
<atom:Button ButtonType="Text" Shape="Default"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Search
</atom:Button>
<atom:Button ButtonType="Link" Shape="Default" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
<atom:Button ButtonType="Link" Shape="Default"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Search
</atom:Button>
<atom:Button ButtonType="Dashed" Shape="Circle" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}" />
<atom:Button ButtonType="Link" Shape="Default" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
<atom:Button ButtonType="Dashed" Shape="Circle"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}" />
<atom:Button ButtonType="Link" Shape="Default"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Search
</atom:Button>
</WrapPanel>
<WrapPanel HorizontalAlignment="Left" Orientation="Horizontal">
<atom:Button ButtonType="Primary" IsDanger="True" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
<atom:Button ButtonType="Primary" IsDanger="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Search
</atom:Button>
@@ -148,9 +155,11 @@ If a large or small button is desired, set the size property to either large or
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Search
</atom:Button>
<atom:Button ButtonType="Dashed" Shape="Circle" IsDanger="True" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}" />
<atom:Button ButtonType="Dashed" Shape="Default" IsDanger="True" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
<atom:Button ButtonType="Dashed" Shape="Circle" IsDanger="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}" />
<atom:Button ButtonType="Dashed" Shape="Default" IsDanger="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Search
</atom:Button>
</WrapPanel>
@@ -165,7 +174,8 @@ If a large or small button is desired, set the size property to either large or
<WrapPanel>
<atom:Button ButtonType="Primary" IsLoading="True">Loading</atom:Button>
<atom:Button ButtonType="Primary" SizeType="Small" IsLoading="True">Loading</atom:Button>
<atom:Button ButtonType="Primary" IsLoading="True" Icon="{antdicons:AntDesignIconProvider Kind=PoweroffOutlined}" />
<atom:Button ButtonType="Primary" IsLoading="True"
Icon="{antdicons:AntDesignIconProvider Kind=PoweroffOutlined}" />
</WrapPanel>
<WrapPanel>
<atom:Button ButtonType="Primary" Click="HandleLoadingBtnClick">Click me!</atom:Button>
@@ -254,16 +264,20 @@ If a large or small button is desired, set the size property to either large or
</atom:Button>
</WrapPanel>
<WrapPanel HorizontalAlignment="Stretch" Orientation="Horizontal">
<atom:Button ButtonType="Primary" IsGhost="True" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
<atom:Button ButtonType="Primary" IsGhost="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Primary
</atom:Button>
<atom:Button ButtonType="Default" IsGhost="True" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
<atom:Button ButtonType="Default" IsGhost="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Default
</atom:Button>
<atom:Button ButtonType="Text" IsGhost="True" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
<atom:Button ButtonType="Text" IsGhost="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Text
</atom:Button>
<atom:Button ButtonType="Link" IsGhost="True" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
<atom:Button ButtonType="Link" IsGhost="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Link
</atom:Button>
<atom:Button ButtonType="Primary" IsDanger="True" IsGhost="True"
@@ -280,90 +294,103 @@ If a large or small button is desired, set the size property to either large or
Description="To mark a button as disabled, add the disabled property to the Button.">
<WrapPanel HorizontalAlignment="Stretch" Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<atom:Button ButtonType="Primary">
<atom:Button ButtonType="Primary" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Primary
</atom:Button>
<atom:Button ButtonType="Primary" IsEnabled="False">
<atom:Button ButtonType="Primary" IsEnabled="False"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Primary(disabled)
</atom:Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<atom:Button ButtonType="Default">
<atom:Button ButtonType="Default" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Default
</atom:Button>
<atom:Button ButtonType="Default" IsEnabled="False">
<atom:Button ButtonType="Default" IsEnabled="False" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Default(disabled)
</atom:Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<atom:Button ButtonType="Dashed">
<atom:Button ButtonType="Dashed" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Dashed
</atom:Button>
<atom:Button ButtonType="Dashed" IsEnabled="False">
<atom:Button ButtonType="Dashed" IsEnabled="False"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Dashed(disabled)
</atom:Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<atom:Button ButtonType="Text">
<atom:Button ButtonType="Text" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Text
</atom:Button>
<atom:Button ButtonType="Text" IsEnabled="False">
<atom:Button ButtonType="Text" IsEnabled="False"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Text(disabled)
</atom:Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<atom:Button ButtonType="Link">
<atom:Button ButtonType="Link" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Link
</atom:Button>
<atom:Button ButtonType="Link" IsEnabled="False">
<atom:Button ButtonType="Link" IsEnabled="False"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Link(disabled)
</atom:Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<atom:Button ButtonType="Primary" IsDanger="True">
<atom:Button ButtonType="Primary" IsDanger="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Danger Primary
</atom:Button>
<atom:Button ButtonType="Primary" IsDanger="True" IsEnabled="False">
<atom:Button ButtonType="Primary" IsDanger="True" IsEnabled="False"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Danger Primary(disabled)
</atom:Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<atom:Button ButtonType="Default" IsDanger="True">
<atom:Button ButtonType="Default" IsDanger="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Danger Default
</atom:Button>
<atom:Button ButtonType="Default" IsDanger="True" IsEnabled="False">
<atom:Button ButtonType="Default" IsDanger="True" IsEnabled="False"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Danger Default(disabled)
</atom:Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<atom:Button ButtonType="Text" IsDanger="True">
<atom:Button ButtonType="Text" IsDanger="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Danger Text
</atom:Button>
<atom:Button ButtonType="Text" IsDanger="True" IsEnabled="False">
<atom:Button ButtonType="Text" IsDanger="True" IsEnabled="False"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Danger Text(disabled)
</atom:Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<atom:Button ButtonType="Link" IsDanger="True">
<atom:Button ButtonType="Link" IsDanger="True"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Danger Link
</atom:Button>
<atom:Button ButtonType="Link" IsDanger="True" IsEnabled="False">
<atom:Button ButtonType="Link" IsDanger="True" IsEnabled="False"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Danger Link(disabled)
</atom:Button>
</StackPanel>
<Border Background="rgb(190, 200, 200)">
<StackPanel Orientation="Horizontal">
<atom:Button IsGhost="True">
Ghost
</atom:Button>
<atom:Button IsGhost="True" IsEnabled="False">
Ghost(disabled)
</atom:Button>
</StackPanel>
</Border>
<StackPanel Orientation="Horizontal">
<atom:Button IsGhost="True" Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Ghost
</atom:Button>
<atom:Button IsGhost="True" IsEnabled="False"
Icon="{antdicons:AntDesignIconProvider Kind=SearchOutlined}">
Ghost(disabled)
</atom:Button>
</StackPanel>
</Border>
</WrapPanel>
</gallerycontrols:ShowCaseItem>
</gallerycontrols:ShowCasePanel>
@@ -47,9 +47,6 @@ public class IconPresenter : TemplatedControl, IMotionAwareControl
public static readonly StyledProperty<IBrush?> SecondaryFilledBrushProperty =
IconControl.SecondaryFilledBrushProperty.AddOwner<IconPresenter>();
public static readonly StyledProperty<IconMode> IconModeProperty =
IconControl.IconModeProperty.AddOwner<IconPresenter>();
public static readonly StyledProperty<bool> IsMotionEnabledProperty =
MotionAwareControlProperty.IsMotionEnabledProperty.AddOwner<IconPresenter>();
@@ -108,12 +105,6 @@ public class IconPresenter : TemplatedControl, IMotionAwareControl
set => SetValue(SecondaryFilledBrushProperty, value);
}
public IconMode IconMode
{
get => GetValue(IconModeProperty);
set => SetValue(IconModeProperty, value);
}
public bool IsMotionEnabled
{
get => GetValue(IsMotionEnabledProperty);
@@ -11,9 +11,5 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorIcon}}" />
<Setter Property="PrimaryFilledBrush" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorPrimary}}" />
<Setter Property="SecondaryFilledBrush" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorInfoBg}}" />
<Style Selector="^:disabled">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</ControlTheme>
</ResourceDictionary>
@@ -22,8 +22,5 @@
<Setter Property="SecondaryFilledBrush" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorInfoBg}}" />
<Setter Property="FillAnimationDuration" Value="{DynamicResource {x:Static atom:SharedTokenKey.MotionDurationMid}}" />
<Style Selector="^:disabled">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</ControlTheme>
</ResourceDictionary>
+1 -13
View File
@@ -58,9 +58,6 @@ public class Icon : PathIcon, ICustomHitTest, IMotionAwareControl
AvaloniaProperty.Register<Icon, TimeSpan>(
nameof(FillAnimationDuration), TimeSpan.FromMilliseconds(200));
public static readonly StyledProperty<IconMode> IconModeProperty =
AvaloniaProperty.Register<Icon, IconMode>(nameof(IconMode));
public static readonly StyledProperty<bool> IsMotionEnabledProperty =
MotionAwareControlProperty.IsMotionEnabledProperty.AddOwner<Icon>();
@@ -117,16 +114,7 @@ public class Icon : PathIcon, ICustomHitTest, IMotionAwareControl
get => GetValue(FillAnimationDurationProperty);
set => SetValue(FillAnimationDurationProperty, value);
}
/// <summary>
/// Icon 的模式,只对 Outlined 和 Filled 类型有效
/// </summary>
public IconMode IconMode
{
get => GetValue(IconModeProperty);
set => SetValue(IconModeProperty, value);
}
public IconThemeType ThemeType => IconInfo?.ThemeType ?? IconThemeType.Filled;
public IconAnimation LoadingAnimation
@@ -57,9 +57,6 @@ public class IconButton : AvaloniaButton,
public static readonly StyledProperty<double> IconHeightProperty =
AvaloniaProperty.Register<IconButton, double>(nameof(IconHeight));
public static readonly StyledProperty<IconMode> IconModeProperty =
IconControl.IconModeProperty.AddOwner<IconButton>();
public static readonly StyledProperty<bool> IsEnableHoverEffectProperty =
AvaloniaProperty.Register<IconButton, bool>(nameof(IsEnableHoverEffect));
@@ -96,12 +93,6 @@ public class IconButton : AvaloniaButton,
get => GetValue(IconHeightProperty);
set => SetValue(IconHeightProperty, value);
}
public IconMode IconMode
{
get => GetValue(IconModeProperty);
set => SetValue(IconModeProperty, value);
}
public bool IsEnableHoverEffect
{
@@ -138,6 +138,15 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultActiveColor}}" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
<!-- text 和 icon 都存在的情况 -->
<Style Selector="^[SizeType=Large]">
@@ -211,6 +211,15 @@
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
<Style Selector="^ /template/ Border#ShadowsFrame">
<Setter Property="BoxShadow" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultShadow}}" />
@@ -147,6 +147,15 @@
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
<Style Selector="^ /template/ Border#ShadowsFrame">
<Setter Property="BoxShadow" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultShadow}}" />
</Style>
@@ -72,6 +72,15 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorLinkActive}}" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
<Style Selector="^:danger">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
@@ -98,6 +107,15 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorErrorActive}}" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
</Style>
</Style>
</ControlTheme>
@@ -104,6 +104,15 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:ButtonTokenKey.PrimaryColor}}" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
<Style Selector="^[IsGhost=True]">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
@@ -70,6 +70,15 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultColor}}" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
<Style Selector="^:danger">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
@@ -96,6 +105,15 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorErrorActive}}" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
</Style>
</Style>
@@ -94,6 +94,15 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorLinkActive}}" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
<Style Selector="^:danger">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
@@ -120,6 +129,15 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorErrorActive}}" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
</Style>
<!-- text 和 icon 都存在的情况 -->
@@ -75,6 +75,15 @@
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:ButtonTokenKey.DefaultActiveColor}}" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#PART_ButtonIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
<Style Selector="^ /template/ atom|Icon#PART_LoadingIcon">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
</Style>
</Style>
</Style>
</ControlTheme>
@@ -195,10 +195,6 @@
<Style Selector="^:disabled">
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:MenuTokenKey.ItemDisabledColor}}" />
<Style Selector="^ /template/ atom|IconPresenter#ItemIconPresenter">
<Setter Property="IconMode" Value="Disabled" />
</Style>
</Style>
</Style>
</ControlTheme>
@@ -113,16 +113,6 @@
</Style>
</Style>
<Style Selector="^[IsSelected=True]">
<Style Selector="^ /template/ atom|Icon#MenuIndicatorIcon">
<Setter Property="IconMode" Value="Selected" />
</Style>
<Style Selector="^ /template/ atom|IconPresenter#ItemIconPresenter">
<Setter Property="IconMode" Value="Selected" />
</Style>
</Style>
<Style Selector="^[HasSubMenu=False]">
<Style Selector="^ /template/ atom|Icon#MenuIndicatorIcon">
<Setter Property="IsVisible" Value="False" />
@@ -155,13 +145,6 @@
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#ItemIconPresenter">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static atom:NavMenuTokenKey.ItemDisabledColor}}" />
</Style>
</Style>
<Style Selector="^[IsDarkStyle=True]">
<Style Selector="^ /template/ atom|IconPresenter#ItemIconPresenter">
<Setter Property="Foreground"
@@ -180,13 +163,7 @@
Value="{DynamicResource {x:Static atom:NavMenuTokenKey.DarkItemSelectedColor}}" />
</Style>
</Style>
<Style Selector="^:disabled">
<Style Selector="^ /template/ atom|IconPresenter#ItemIconPresenter">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static atom:NavMenuTokenKey.DarkItemDisabledColor}}" />
</Style>
</Style>
</Style>
<Style Selector="^:icon">
@@ -198,12 +175,12 @@
<Style Selector="^:disabled">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static atom:NavMenuTokenKey.ItemDisabledColor}}" />
<Style Selector="^ /template/ atom|IconPresenter#ItemIconPresenter">
<Setter Property="IconMode" Value="Disabled" />
</Style>
<Style Selector="^ /template/ atom|Icon#MenuIndicatorIcon">
<Setter Property="IconMode" Value="Disabled" />
</Style>
</Style>
<Style Selector="^ /template/ atom|IconPresenter#ItemIconPresenter:disabled">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static atom:NavMenuTokenKey.ItemDisabledColor}}" />
</Style>
<Style Selector="^[IsDarkStyle=True]">
@@ -211,6 +188,10 @@
<Setter Property="Foreground"
Value="{DynamicResource {x:Static atom:NavMenuTokenKey.DarkItemDisabledColor}}" />
</Style>
<Style Selector="^ /template/ atom|IconPresenter#ItemIconPresenter:disabled">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static atom:NavMenuTokenKey.DarkItemDisabledColor}}" />
</Style>
</Style>
</Style>
</ControlTheme>
@@ -17,8 +17,7 @@
PrimaryFilledBrush="{TemplateBinding PrimaryFilledBrush}"
SecondaryFilledBrush="{TemplateBinding SecondaryFilledBrush}"
Width="{TemplateBinding IconWidth}"
Height="{TemplateBinding IconHeight}"
IconMode="{TemplateBinding IconMode}" />
Height="{TemplateBinding IconHeight}"/>
</ControlTemplate>
</Setter>
@@ -49,9 +49,6 @@ internal class SizeTypeAwareIconPresenter : TemplatedControl, ISizeTypeAware
public static readonly StyledProperty<double> IconHeightProperty =
AvaloniaProperty.Register<SizeTypeAwareIconPresenter, double>(nameof(IconHeight), double.NaN);
public static readonly StyledProperty<IconMode> IconModeProperty =
IconControl.IconModeProperty.AddOwner<SizeTypeAwareIconPresenter>();
public SizeType SizeType
{
get => GetValue(SizeTypeProperty);
@@ -124,12 +121,6 @@ internal class SizeTypeAwareIconPresenter : TemplatedControl, ISizeTypeAware
get => GetValue(SecondaryFilledBrushProperty);
set => SetValue(SecondaryFilledBrushProperty, value);
}
public IconMode IconMode
{
get => GetValue(IconModeProperty);
set => SetValue(IconModeProperty, value);
}
#endregion
@@ -118,10 +118,6 @@
<Setter Property="StrokeBrush"
Value="{DynamicResource {x:Static atom:SharedTokenKey.ControlItemBgActiveDisabled}}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static atom:SharedTokenKey.ColorTextDisabled}}" />
<Style Selector="^ /template/ atom|IconPresenter">
<Setter Property="IconMode" Value="Disabled" />
</Style>
</Style>
</Style>
</ControlTheme>