Pixiview/Gallery/UI/Theme/ThemeBase.cs
2021-08-04 10:27:41 +08:00

98 lines
5.5 KiB
C#

using Xamarin.Forms;
namespace Gallery.UI.Theme
{
public abstract class ThemeBase : ResourceDictionary
{
public const string FontIconUserFlyout = nameof(FontIconUserFlyout);
public const string FontIconSparklesFlyout = nameof(FontIconSparklesFlyout);
public const string FontIconOrderFlyout = nameof(FontIconOrderFlyout);
public const string FontIconFavoriteFlyout = nameof(FontIconFavoriteFlyout);
public const string FontIconRefresh = nameof(FontIconRefresh);
public const string FontIconLove = nameof(FontIconLove);
public const string FontIconNotLove = nameof(FontIconNotLove);
public const string FontIconCircleLove = nameof(FontIconCircleLove);
public const string FontIconOption = nameof(FontIconOption);
public const string FontIconShare = nameof(FontIconShare);
public const string FontIconMore = nameof(FontIconMore);
public const string FontIconCaretCircleLeft = nameof(FontIconCaretCircleLeft);
public const string FontIconCaretCircleRight = nameof(FontIconCaretCircleRight);
public const string FontIconCalendarDay = nameof(FontIconCalendarDay);
public const string FontIconCloudDownload = nameof(FontIconCloudDownload);
public const string IconCircleCheck = nameof(IconCircleCheck);
public const string IconCaretDown = nameof(IconCaretDown);
public const string IconClose = nameof(IconClose);
public const string StatusBarStyle = nameof(StatusBarStyle);
public const string WindowColor = nameof(WindowColor);
public const string TintColor = nameof(TintColor);
public const string TextColor = nameof(TextColor);
public const string SubTextColor = nameof(SubTextColor);
public const string CardBackgroundColor = nameof(CardBackgroundColor);
public const string MaskColor = nameof(MaskColor);
public const string NavColor = nameof(NavColor);
public const string NavSelectedColor = nameof(NavSelectedColor);
public const string OptionBackColor = nameof(OptionBackColor);
public const string OptionTintColor = nameof(OptionTintColor);
public const string IconLightFontFamily = nameof(IconLightFontFamily);
public const string IconRegularFontFamily = nameof(IconRegularFontFamily);
public const string IconSolidFontFamily = nameof(IconSolidFontFamily);
//public const string Horizon10 = nameof(Horizon10);
public const string ScreenBottomPadding = nameof(ScreenBottomPadding);
protected void InitResources()
{
//Add(Horizon10, StyleDefinition.Horizon10);
Add(ScreenBottomPadding, StyleDefinition.ScreenBottomPadding);
Add(IconLightFontFamily, StyleDefinition.IconLightFontFamily);
Add(IconRegularFontFamily, StyleDefinition.IconRegularFontFamily);
Add(IconSolidFontFamily, StyleDefinition.IconSolidFontFamily);
var regularFontFamily = StyleDefinition.IconRegularFontFamily;
var solidFontFamily = StyleDefinition.IconSolidFontFamily;
#if __IOS__
Add(FontIconUserFlyout, GetSolidIcon(StyleDefinition.IconUser, solidFontFamily));
Add(FontIconSparklesFlyout, GetSolidIcon(StyleDefinition.IconSparkles, solidFontFamily));
Add(FontIconOrderFlyout, GetSolidIcon(StyleDefinition.IconOrder, solidFontFamily));
Add(FontIconFavoriteFlyout, GetSolidIcon(StyleDefinition.IconFavorite, solidFontFamily));
Add(FontIconOption, GetSolidIcon(StyleDefinition.IconOption, solidFontFamily));
#elif __ANDROID__
Add(FontIconUserFlyout, ImageSource.FromFile("ic_user"));
Add(FontIconSparklesFlyout, ImageSource.FromFile("ic_sparkles"));
Add(FontIconOrderFlyout, ImageSource.FromFile("ic_rank"));
Add(FontIconFavoriteFlyout, ImageSource.FromFile("ic_bookmark"));
Add(FontIconOption, ImageSource.FromFile("ic_option"));
#endif
Add(FontIconLove, GetSolidIcon(StyleDefinition.IconLove, solidFontFamily, StyleDefinition.ColorRedBackground));
Add(FontIconCircleLove, GetSolidIcon(StyleDefinition.IconCircleLove, solidFontFamily, StyleDefinition.ColorRedBackground));
Add(FontIconRefresh, GetSolidIcon(StyleDefinition.IconRefresh, solidFontFamily));
Add(FontIconNotLove, GetSolidIcon(StyleDefinition.IconLove, regularFontFamily));
Add(FontIconShare, GetSolidIcon(StyleDefinition.IconShare, solidFontFamily));
Add(FontIconMore, GetSolidIcon(StyleDefinition.IconMore, regularFontFamily));
Add(FontIconCaretCircleLeft, GetSolidIcon(StyleDefinition.IconCaretCircleLeft, solidFontFamily));
Add(FontIconCaretCircleRight, GetSolidIcon(StyleDefinition.IconCaretCircleRight, solidFontFamily));
Add(FontIconCalendarDay, GetSolidIcon(StyleDefinition.IconCalendarDay, regularFontFamily));
Add(FontIconCloudDownload, GetSolidIcon(StyleDefinition.IconCloudDownload, solidFontFamily));
Add(IconCircleCheck, StyleDefinition.IconCircleCheck);
Add(IconCaretDown, StyleDefinition.IconCaretDown);
Add(IconClose, StyleDefinition.IconClose);
}
private FontImageSource GetSolidIcon(string icon, string family, Color color = default)
{
return new FontImageSource
{
FontFamily = family,
Glyph = icon,
Size = StyleDefinition.FontSizeTitle,
Color = color
};
}
}
}