feat: add Themes.

This commit is contained in:
Zhang Dian
2023-07-27 23:48:58 +08:00
parent 237d63d414
commit 40fc7a04b1
5 changed files with 111 additions and 9 deletions

View File

@@ -12,7 +12,7 @@
<u:DualBadge>
2.4k
</u:DualBadge>
<u:DualBadge>
<u:DualBadge.Icon>
<PathIcon
@@ -22,12 +22,12 @@
</u:DualBadge.Icon>
2.4k
</u:DualBadge>
<u:DualBadge
Header="downloads">
2.4k
</u:DualBadge>
<u:DualBadge
Header="downloads">
<u:DualBadge.Icon>
@@ -39,5 +39,70 @@
2.4k
</u:DualBadge>
<!--
<u:DualBadge Classes="FlatSquare">
2.4k
</u:DualBadge>
<u:DualBadge Classes="FlatSquare">
<u:DualBadge.Icon>
<PathIcon
Width="14"
Height="14"
Data="M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM14 7C14 8.10457 13.1046 9 12 9C10.8954 9 10 8.10457 10 7C10 5.89543 10.8954 5 12 5C13.1046 5 14 5.89543 14 7ZM9 10.75C9 10.3358 9.33579 10 9.75 10H12.5C13.0523 10 13.5 10.4477 13.5 11V16.5H14.25C14.6642 16.5 15 16.8358 15 17.25C15 17.6642 14.6642 18 14.25 18H9.75C9.33579 18 9 17.6642 9 17.25C9 16.8358 9.33579 16.5 9.75 16.5H10.5V11.5H9.75C9.33579 11.5 9 11.1642 9 10.75Z" />
</u:DualBadge.Icon>
2.4k
</u:DualBadge>
<u:DualBadge
Classes="FlatSquare"
Header="downloads">
2.4k
</u:DualBadge>
<u:DualBadge
Classes="FlatSquare"
Header="downloads">
<u:DualBadge.Icon>
<PathIcon
Width="14"
Height="14"
Data="M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM14 7C14 8.10457 13.1046 9 12 9C10.8954 9 10 8.10457 10 7C10 5.89543 10.8954 5 12 5C13.1046 5 14 5.89543 14 7ZM9 10.75C9 10.3358 9.33579 10 9.75 10H12.5C13.0523 10 13.5 10.4477 13.5 11V16.5H14.25C14.6642 16.5 15 16.8358 15 17.25C15 17.6642 14.6642 18 14.25 18H9.75C9.33579 18 9 17.6642 9 17.25C9 16.8358 9.33579 16.5 9.75 16.5H10.5V11.5H9.75C9.33579 11.5 9 11.1642 9 10.75Z" />
</u:DualBadge.Icon>
2.4k
</u:DualBadge>
-->
<u:DualBadge Theme="{StaticResource ForTheBadge}">
2.4K
</u:DualBadge>
<u:DualBadge Theme="{StaticResource ForTheBadge}">
<u:DualBadge.Icon>
<PathIcon
Width="14"
Height="14"
Data="M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM14 7C14 8.10457 13.1046 9 12 9C10.8954 9 10 8.10457 10 7C10 5.89543 10.8954 5 12 5C13.1046 5 14 5.89543 14 7ZM9 10.75C9 10.3358 9.33579 10 9.75 10H12.5C13.0523 10 13.5 10.4477 13.5 11V16.5H14.25C14.6642 16.5 15 16.8358 15 17.25C15 17.6642 14.6642 18 14.25 18H9.75C9.33579 18 9 17.6642 9 17.25C9 16.8358 9.33579 16.5 9.75 16.5H10.5V11.5H9.75C9.33579 11.5 9 11.1642 9 10.75Z" />
</u:DualBadge.Icon>
2.4K
</u:DualBadge>
<u:DualBadge
Theme="{StaticResource ForTheBadge}"
Header="DOWNLOADS">
2.4K
</u:DualBadge>
<u:DualBadge
Theme="{StaticResource ForTheBadge}"
Header="DOWNLOADS">
<u:DualBadge.Icon>
<PathIcon
Width="14"
Height="14"
Data="M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM14 7C14 8.10457 13.1046 9 12 9C10.8954 9 10 8.10457 10 7C10 5.89543 10.8954 5 12 5C13.1046 5 14 5.89543 14 7ZM9 10.75C9 10.3358 9.33579 10 9.75 10H12.5C13.0523 10 13.5 10.4477 13.5 11V16.5H14.25C14.6642 16.5 15 16.8358 15 17.25C15 17.6642 14.6642 18 14.25 18H9.75C9.33579 18 9 17.6642 9 17.25C9 16.8358 9.33579 16.5 9.75 16.5H10.5V11.5H9.75C9.33579 11.5 9 11.1642 9 10.75Z" />
</u:DualBadge.Icon>
2.4K
</u:DualBadge>
</StackPanel>
</UserControl>

View File

@@ -63,4 +63,28 @@
<Setter Property="HeaderBackground" Value="{Binding Background, RelativeSource={RelativeSource Self}}" />
</Style>
</ControlTheme>
<ControlTheme
x:Key="FlatSquare"
BasedOn="{StaticResource {x:Type u:DualBadge}}"
TargetType="u:DualBadge">
<Setter Property="CornerRadius" Value="0" />
</ControlTheme>
<ControlTheme
x:Key="Plastic"
BasedOn="{StaticResource {x:Type u:DualBadge}}"
TargetType="u:DualBadge">
<Setter Property="Background">
</Setter>
</ControlTheme>
<ControlTheme
x:Key="ForTheBadge"
BasedOn="{StaticResource {x:Type u:DualBadge}}"
TargetType="u:DualBadge">
<Setter Property="CornerRadius" Value="0" />
<Setter Property="Padding" Value="12 6" />
</ControlTheme>
</ResourceDictionary>

View File

@@ -3,5 +3,12 @@
<SolidColorBrush x:Key="DualBadgeDefaultHeaderForeground">White</SolidColorBrush>
<SolidColorBrush x:Key="DualBadgeDefaultHeaderBackground">#FF888D92</SolidColorBrush>
<SolidColorBrush x:Key="DualBadgeDefaultForeground">White</SolidColorBrush>
<SolidColorBrush x:Key="DualBadgeDefaultBackground">#FF5DC264</SolidColorBrush>
<LinearGradientBrush x:Key="DualBadgeDefaultHeaderBackground" StartPoint="0%,0%" EndPoint="0%,100%">
<GradientStop Color="#FF555B61" Offset="0" />
<GradientStop Color="#FF41464C" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="DualBadgeDefaultBackground" StartPoint="0%,0%" EndPoint="0%,100%">
<GradientStop Color="#FF5AC262" Offset="0" />
<GradientStop Color="#FF3BB346" Offset="1" />
</LinearGradientBrush>
</ResourceDictionary>

View File

@@ -1,7 +1,14 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<SolidColorBrush x:Key="DualBadgeDefaultIconForeground">White</SolidColorBrush>
<SolidColorBrush x:Key="DualBadgeDefaultHeaderForeground">White</SolidColorBrush>
<SolidColorBrush x:Key="DualBadgeDefaultHeaderBackground">#FF6B7075</SolidColorBrush>
<LinearGradientBrush x:Key="DualBadgeDefaultHeaderBackground" StartPoint="0%,0%" EndPoint="0%,100%">
<GradientStop Color="#FF555B61" Offset="0" />
<GradientStop Color="#FF41464C" Offset="1" />
</LinearGradientBrush>
<SolidColorBrush x:Key="DualBadgeDefaultForeground">White</SolidColorBrush>
<SolidColorBrush x:Key="DualBadgeDefaultBackground">#FF3BB346</SolidColorBrush>
<LinearGradientBrush x:Key="DualBadgeDefaultBackground" StartPoint="0%,0%" EndPoint="0%,100%">
<GradientStop Color="#FF5AC262" Offset="0" />
<GradientStop Color="#FF3BB346" Offset="1" />
</LinearGradientBrush>
</ResourceDictionary>

View File

@@ -4,7 +4,6 @@ using Avalonia.Controls.Metadata;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
using Avalonia.Interactivity;
using Avalonia.Media;
namespace Ursa.Controls;
@@ -72,9 +71,9 @@ public class DualBadge : HeaderedContentControl
ContentProperty.Changed.AddClassHandler<DualBadge>((o, args) => o.OnContentChanged());
}
protected override void OnLoaded(RoutedEventArgs e)
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
{
base.OnLoaded(e);
base.OnApplyTemplate(e);
OnIconChanged();
OnHeaderChanged();
OnContentChanged();