mirror of
https://gitcode.com/gh_mirrors/se/Semi.Avalonia
synced 2026-03-19 07:56:36 +08:00
feat: add ColorDetail panel.
This commit is contained in:
@@ -6,12 +6,15 @@ using Avalonia.Controls.ApplicationLifetimes;
|
||||
using Avalonia.Media;
|
||||
using Avalonia.Styling;
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Messaging;
|
||||
|
||||
namespace Semi.Avalonia.Demo.ViewModels;
|
||||
|
||||
public partial class HighContrastDemoViewModel : ObservableObject
|
||||
{
|
||||
[ObservableProperty] private ThemeVariant? _selectedThemeVariant;
|
||||
[ObservableProperty] private ColorResource _selectedColorResource = null!;
|
||||
|
||||
public IEnumerable<ThemeVariant> ThemeVariants { get; }
|
||||
public ObservableCollection<ColorResource> ColorResources { get; set; }
|
||||
|
||||
@@ -30,6 +33,7 @@ public partial class HighContrastDemoViewModel : ObservableObject
|
||||
{
|
||||
ResourceKey = "WindowColor",
|
||||
Brush = new SolidColorBrush(Color.Parse("#202020")),
|
||||
Hex = "#FF202020",
|
||||
Description = "Background of pages, panes, popups, and windows.",
|
||||
PairWith = "WindowTextColor"
|
||||
},
|
||||
@@ -37,6 +41,7 @@ public partial class HighContrastDemoViewModel : ObservableObject
|
||||
{
|
||||
ResourceKey = "WindowTextColor",
|
||||
Brush = new SolidColorBrush(Color.Parse("#FFFFFF")),
|
||||
Hex = "WHITE",
|
||||
Description = "Headings, body copy, lists, placeholder text, app and window borders.",
|
||||
PairWith = "WindowColor"
|
||||
},
|
||||
@@ -44,6 +49,7 @@ public partial class HighContrastDemoViewModel : ObservableObject
|
||||
{
|
||||
ResourceKey = "HotlightColor",
|
||||
Brush = new SolidColorBrush(Color.Parse("#75E9FC")),
|
||||
Hex = "#FF75E9FC",
|
||||
Description = "Hyperlinks.",
|
||||
PairWith = "WindowColor"
|
||||
},
|
||||
@@ -51,6 +57,7 @@ public partial class HighContrastDemoViewModel : ObservableObject
|
||||
{
|
||||
ResourceKey = "GrayTextColor",
|
||||
Brush = new SolidColorBrush(Color.Parse("#A6A6A6")),
|
||||
Hex = "#FFA6A6A6",
|
||||
Description = "Inactive (disabled) UI.",
|
||||
PairWith = "WindowColor"
|
||||
},
|
||||
@@ -58,6 +65,7 @@ public partial class HighContrastDemoViewModel : ObservableObject
|
||||
{
|
||||
ResourceKey = "HighlightTextColor",
|
||||
Brush = new SolidColorBrush(Color.Parse("#263B50")),
|
||||
Hex = "#FF263B50",
|
||||
Description =
|
||||
"Foreground color for text or UI that is in selected, interacted with (hover, pressed), or in progress.",
|
||||
PairWith = "HighlightColor"
|
||||
@@ -66,6 +74,7 @@ public partial class HighContrastDemoViewModel : ObservableObject
|
||||
{
|
||||
ResourceKey = "HighlightColor",
|
||||
Brush = new SolidColorBrush(Color.Parse("#8EE3F0")),
|
||||
Hex = "#FF8EE3F0",
|
||||
Description =
|
||||
"Background or accent color for UI that is in selected, interacted with (hover, pressed), or in progress.",
|
||||
PairWith = "HighlightTextColor"
|
||||
@@ -74,6 +83,7 @@ public partial class HighContrastDemoViewModel : ObservableObject
|
||||
{
|
||||
ResourceKey = "ButtonTextColor",
|
||||
Brush = new SolidColorBrush(Color.Parse("#FFFFFF")),
|
||||
Hex = "WHITE",
|
||||
Description = "Foreground color for buttons and any UI that can be interacted with.",
|
||||
PairWith = "ButtonFaceColor"
|
||||
},
|
||||
@@ -81,10 +91,13 @@ public partial class HighContrastDemoViewModel : ObservableObject
|
||||
{
|
||||
ResourceKey = "ButtonFaceColor",
|
||||
Brush = new SolidColorBrush(Color.Parse("#202020")),
|
||||
Hex = "#FF202020",
|
||||
Description = "Background color for buttons and any UI that can be interacted with.",
|
||||
PairWith = "ButtonTextColor"
|
||||
},
|
||||
];
|
||||
WeakReferenceMessenger.Default.Register<HighContrastDemoViewModel, ColorResource>
|
||||
(this, (_, item) => SelectedColorResource = item);
|
||||
SelectedThemeVariant = SemiTheme.Aquatic;
|
||||
}
|
||||
|
||||
@@ -98,6 +111,7 @@ public partial class HighContrastDemoViewModel : ObservableObject
|
||||
if (topLevel?.TryFindResource(colorResource.ResourceKey, value, out var o) == true && o is Color color)
|
||||
{
|
||||
colorResource.Brush = new SolidColorBrush(color);
|
||||
colorResource.Hex = color.ToString().ToUpperInvariant();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -117,6 +131,7 @@ public partial class ColorResource : ObservableObject
|
||||
{
|
||||
[ObservableProperty] private string? _resourceKey;
|
||||
[ObservableProperty] private SolidColorBrush? _brush;
|
||||
[ObservableProperty] private string? _hex;
|
||||
[ObservableProperty] private string? _description;
|
||||
[ObservableProperty] private string? _pairWith;
|
||||
}
|
||||
Reference in New Issue
Block a user