TMusic/ViewModel/ThemeViewModel.cs

(完整代码) 1KB

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using MaterialDesignColors;
using System.Collections.Generic;
using System.Windows.Media;
using TMusic.Util;

namespace TMusic.ViewModel
{
    public class ThemeViewModel : ObservableObject
    {
        public IEnumerable<ISwatch> Swatches { get; private set; }

        public RelayCommand<Color> ChangeHueCommand => new RelayCommand<Color>(ChangeHue);

        private Color? _selectedColor;

        public Color? SelectedColor
        {
            get => _selectedColor;
            set
            {
                if (_selectedColor != value)
                {
                    SetProperty(ref _selectedColor, value);
                }
            }
        }

        public ThemeViewModel()
        {
            Init();
        }

        private void Init()
        {
            Swatches = SwatchHelper.Swatches;

            SelectedColor = ThemeUtil.GetPrimaryMidColor();
        }

        private void ChangeHue(Color color)
        {
            SelectedColor = color;
            ThemeUtil.ChangePrimaryColor(color);
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。