Billing/Billing.Shared/Views/SettingPage.xaml.cs

61 lines
2.1 KiB
C#

using Billing.Themes;
using Billing.UI;
using Xamarin.Essentials;
using Xamarin.Forms;
namespace Billing.Views
{
public partial class SettingPage : BillingPage
{
private static readonly BindableProperty VersionProperty = BindableProperty.Create(nameof(Version), typeof(string), typeof(SettingPage));
private static readonly BindableProperty RedProperty = BindableProperty.Create(nameof(Red), typeof(byte), typeof(SettingPage));
private static readonly BindableProperty GreenProperty = BindableProperty.Create(nameof(Green), typeof(byte), typeof(SettingPage));
private static readonly BindableProperty BlueProperty = BindableProperty.Create(nameof(Blue), typeof(byte), typeof(SettingPage));
public string Version => (string)GetValue(VersionProperty);
public byte Red
{
get => (byte)GetValue(RedProperty);
set => SetValue(RedProperty, value);
}
public byte Green
{
get => (byte)GetValue(GreenProperty);
set => SetValue(GreenProperty, value);
}
public byte Blue
{
get => (byte)GetValue(BlueProperty);
set => SetValue(BlueProperty, value);
}
public SettingPage()
{
InitializeComponent();
var (main, build) = Definition.GetVersion();
SetValue(VersionProperty, $"{main} ({build})");
}
protected override void OnAppearing()
{
base.OnAppearing();
//SetValue(VersionProperty, $"{AppInfo.VersionString} ({AppInfo.BuildString})");
var colorString = Preferences.Get(Definition.PrimaryColorKey, "#183153");
var color = Color.FromHex(colorString);
Red = (byte)(color.R * 255);
Green = (byte)(color.G * 255);
Blue = (byte)(color.B * 255);
}
protected override void OnDisappearing()
{
base.OnDisappearing();
var color = Color.FromRgb(Red, Green, Blue);
Preferences.Set(Definition.PrimaryColorKey, color.ToHex());
Light.Instance.RefreshColor(color);
}
}
}