78 lines
2.4 KiB
C#
78 lines
2.4 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);
|
||
|
}
|
||
|
}
|
||
|
}
|