76 lines
2.2 KiB
C#
76 lines
2.2 KiB
C#
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);
|
|
}
|
|
} |