using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using SparkClient.ViewModel.BaseWindow;
using MessageBox = SparkClient.Views.Dialog.MessageBox;

namespace SparkClient.Views.BaseWindow;

public partial class HomeWindow 
{
    private Window parentWindow;
    public HomeWindow()
    {
        InitializeComponent();
    }

    private void UIElement_OnMouseLeave(object sender, MouseEventArgs e)
    {
        if (sender is Border border)
        {
            var gradientBrush = new RadialGradientBrush();

            // 设置渐变起始点和中心点
            gradientBrush.GradientOrigin = new Point(0.5, 0.5); // 中心点
            gradientBrush.Center = new Point(0.5, 0.5);

            // 设置渐变半径
            gradientBrush.RadiusX = 0.5;
            gradientBrush.RadiusY = 0.5;

            // 添加渐变颜色
            gradientBrush.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FF4C4D4F"), 0.0)); // 内部颜色
            gradientBrush.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FF944703"), 2.0)); // 外部颜色

            // 应用到 Border 的背景
            border.Background = gradientBrush;
            //border.Background = new SolidColorBrush(Colors.Transparent);
        }
    }

    private void UIElement_OnMouseEnter(object sender, MouseEventArgs e)
    {
        if (sender is Border border)
        {
            var gradientBrush = new RadialGradientBrush();

            // 设置渐变起始点和中心点
            gradientBrush.GradientOrigin = new Point(0.5, 0.5); // 中心点
            gradientBrush.Center = new Point(0.5, 0.5);

            // 设置渐变半径
            gradientBrush.RadiusX = 0.5;
            gradientBrush.RadiusY = 0.5;

            // 添加渐变颜色
            gradientBrush.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FF4C4D4F"), 0.0)); // 内部颜色
            gradientBrush.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FF944703"), 1.0)); // 外部颜色

            // 应用到 Border 的背景
            border.Background = gradientBrush;
            // border.Background = new SolidColorBrush(Color.FromArgb(50, 255, 255, 255));
        }
    }
    
    private void Minimize_Click(object sender, MouseButtonEventArgs e)
    {
        //this.WindowState = WindowState.Minimized;
        if(parentWindow != null)parentWindow.WindowState = WindowState.Minimized;
    }
    
    private void Close_Click(object sender, MouseButtonEventArgs e)
    {
        parentWindow.Close();
    }
    
    private void UIElement_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        if (e.LeftButton == MouseButtonState.Pressed)
        {
            try
            {
                // this.DragMove();
            }
            catch (InvalidOperationException ex)
            {
               
            }
        }
    }
    
    private void Border_Minimize_MouseEnter(object sender, MouseEventArgs e)
    {
        // 鼠标进入时更改背景色
        if (sender is Border border)
        {
            border.Background = new SolidColorBrush(Color.FromArgb(50, 255, 255, 255));
        }
    }
    private void Border_Close_MouseEnter(object sender, MouseEventArgs e)
    {
        // 鼠标进入时更改背景色
        if (sender is Border border)
        {
            border.Background = new SolidColorBrush(Color.FromArgb(50, 255, 0, 0));
        }
    }
    private void Border_MouseLeave(object sender, MouseEventArgs e)
    {
        // 鼠标离开时恢复背景色
        if (sender is Border border)
        {
            border.Background = new SolidColorBrush(Colors.Transparent);
        }
    }

    private void HomeWindow_OnLoaded(object sender, RoutedEventArgs e)
    {
        parentWindow = Window.GetWindow(this);
    }

    // private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    // {
    //     string sss; 
    //    var res =  new MessageBox().ShowInput("heihei?", out sss);
    // }
}