mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
28 lines
916 B
C#
28 lines
916 B
C#
using Avalonia;
|
|
using LanMountainDesktop.Settings.Core;
|
|
using LanMountainDesktop.Shared.Contracts;
|
|
|
|
namespace LanMountainDesktop.Appearance;
|
|
|
|
public static class AppearanceCornerRadiusTokenFactory
|
|
{
|
|
public static AppearanceCornerRadiusTokens Create(double scale)
|
|
{
|
|
var normalizedScale = GlobalAppearanceSettings.NormalizeCornerRadiusScale(scale);
|
|
return new AppearanceCornerRadiusTokens(
|
|
Radius(6, normalizedScale),
|
|
Radius(10, normalizedScale),
|
|
Radius(14, normalizedScale),
|
|
Radius(18, normalizedScale),
|
|
Radius(24, normalizedScale),
|
|
Radius(30, normalizedScale),
|
|
Radius(36, normalizedScale));
|
|
}
|
|
|
|
private static CornerRadius Radius(double value, double scale)
|
|
{
|
|
var scaled = Math.Round(value * scale * 2, MidpointRounding.AwayFromZero) / 2d;
|
|
return new CornerRadius(scaled);
|
|
}
|
|
}
|