using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; using Avalonia.Media; using System.Windows.Input; namespace SPTInstaller.CustomControls; public partial class TitleBar : UserControl { public TitleBar() { InitializeComponent(); } private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } public static readonly StyledProperty<string> TitleProperty = AvaloniaProperty.Register<TitleBar, string>(nameof(Title)); public string Title { get => GetValue(TitleProperty); set => SetValue(TitleProperty, value); } public static readonly StyledProperty<IBrush> ButtonForegroundProperty = AvaloniaProperty.Register<TitleBar, IBrush>(nameof(ButtonForeground)); public IBrush ButtonForeground { get => GetValue(ButtonForegroundProperty); set => SetValue(ButtonForegroundProperty, value); } public static new readonly StyledProperty<IBrush> ForegroundProperty = AvaloniaProperty.Register<TitleBar, IBrush>(nameof(Foreground)); public new IBrush Foreground { get => GetValue(ForegroundProperty); set => SetValue(ForegroundProperty, value); } public static new readonly StyledProperty<IBrush> BackgroundProperty = AvaloniaProperty.Register<TitleBar, IBrush>(nameof(Background)); public new IBrush Background { get => GetValue(BackgroundProperty); set => SetValue(BackgroundProperty, value); } //Close Button Command (X Button) Property public static readonly StyledProperty<ICommand> XButtonCommandProperty = AvaloniaProperty.Register<TitleBar, ICommand>(nameof(XButtonCommand)); public ICommand XButtonCommand { get => GetValue(XButtonCommandProperty); set => SetValue(XButtonCommandProperty, value); } //Minimize Button Command (- Button) Property public static readonly StyledProperty<ICommand> MinButtonCommandProperty = AvaloniaProperty.Register<TitleBar, ICommand>(nameof(MinButtonCommand)); public ICommand MinButtonCommand { get => GetValue(MinButtonCommandProperty); set => SetValue(MinButtonCommandProperty, value); } }