|
@@ -1,6 +1,5 @@
|
|
using Avalonia.Controls;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
-using Avalonia.Controls.Notifications;
|
|
|
|
using Avalonia.Dialogs;
|
|
using Avalonia.Dialogs;
|
|
using Avalonia.Platform;
|
|
using Avalonia.Platform;
|
|
using System;
|
|
using System;
|
|
@@ -22,6 +21,9 @@ namespace ControlCatalog.ViewModels
|
|
private bool _isSystemBarVisible;
|
|
private bool _isSystemBarVisible;
|
|
private bool _displayEdgeToEdge;
|
|
private bool _displayEdgeToEdge;
|
|
private Thickness _safeAreaPadding;
|
|
private Thickness _safeAreaPadding;
|
|
|
|
+ private bool _canResize;
|
|
|
|
+ private bool _canMinimize;
|
|
|
|
+ private bool _canMaximize;
|
|
|
|
|
|
public MainWindowViewModel()
|
|
public MainWindowViewModel()
|
|
{
|
|
{
|
|
@@ -49,7 +51,7 @@ namespace ControlCatalog.ViewModels
|
|
WindowState.FullScreen,
|
|
WindowState.FullScreen,
|
|
};
|
|
};
|
|
|
|
|
|
- this.PropertyChanged += (s, e) =>
|
|
|
|
|
|
+ PropertyChanged += (s, e) =>
|
|
{
|
|
{
|
|
if (e.PropertyName is nameof(SystemTitleBarEnabled) or nameof(PreferSystemChromeEnabled))
|
|
if (e.PropertyName is nameof(SystemTitleBarEnabled) or nameof(PreferSystemChromeEnabled))
|
|
{
|
|
{
|
|
@@ -67,70 +69,104 @@ namespace ControlCatalog.ViewModels
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
- SystemTitleBarEnabled = true;
|
|
|
|
|
|
+ SystemTitleBarEnabled = true;
|
|
TitleBarHeight = -1;
|
|
TitleBarHeight = -1;
|
|
|
|
+ CanResize = true;
|
|
|
|
+ CanMinimize = true;
|
|
|
|
+ CanMaximize = true;
|
|
}
|
|
}
|
|
|
|
|
|
public ExtendClientAreaChromeHints ChromeHints
|
|
public ExtendClientAreaChromeHints ChromeHints
|
|
{
|
|
{
|
|
get { return _chromeHints; }
|
|
get { return _chromeHints; }
|
|
- set { this.RaiseAndSetIfChanged(ref _chromeHints, value); }
|
|
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _chromeHints, value); }
|
|
}
|
|
}
|
|
|
|
|
|
public bool ExtendClientAreaEnabled
|
|
public bool ExtendClientAreaEnabled
|
|
{
|
|
{
|
|
get { return _extendClientAreaEnabled; }
|
|
get { return _extendClientAreaEnabled; }
|
|
- set { this.RaiseAndSetIfChanged(ref _extendClientAreaEnabled, value); }
|
|
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ if (RaiseAndSetIfChanged(ref _extendClientAreaEnabled, value) && !value)
|
|
|
|
+ {
|
|
|
|
+ SystemTitleBarEnabled = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
public bool SystemTitleBarEnabled
|
|
public bool SystemTitleBarEnabled
|
|
{
|
|
{
|
|
get { return _systemTitleBarEnabled; }
|
|
get { return _systemTitleBarEnabled; }
|
|
- set { this.RaiseAndSetIfChanged(ref _systemTitleBarEnabled, value); }
|
|
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ if (RaiseAndSetIfChanged(ref _systemTitleBarEnabled, value) && !value)
|
|
|
|
+ {
|
|
|
|
+ TitleBarHeight = -1;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
public bool PreferSystemChromeEnabled
|
|
public bool PreferSystemChromeEnabled
|
|
{
|
|
{
|
|
get { return _preferSystemChromeEnabled; }
|
|
get { return _preferSystemChromeEnabled; }
|
|
- set { this.RaiseAndSetIfChanged(ref _preferSystemChromeEnabled, value); }
|
|
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _preferSystemChromeEnabled, value); }
|
|
}
|
|
}
|
|
|
|
|
|
public double TitleBarHeight
|
|
public double TitleBarHeight
|
|
{
|
|
{
|
|
get { return _titleBarHeight; }
|
|
get { return _titleBarHeight; }
|
|
- set { this.RaiseAndSetIfChanged(ref _titleBarHeight, value); }
|
|
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _titleBarHeight, value); }
|
|
}
|
|
}
|
|
|
|
|
|
public WindowState WindowState
|
|
public WindowState WindowState
|
|
{
|
|
{
|
|
get { return _windowState; }
|
|
get { return _windowState; }
|
|
- set { this.RaiseAndSetIfChanged(ref _windowState, value); }
|
|
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _windowState, value); }
|
|
}
|
|
}
|
|
|
|
|
|
public WindowState[] WindowStates
|
|
public WindowState[] WindowStates
|
|
{
|
|
{
|
|
get { return _windowStates; }
|
|
get { return _windowStates; }
|
|
- set { this.RaiseAndSetIfChanged(ref _windowStates, value); }
|
|
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _windowStates, value); }
|
|
}
|
|
}
|
|
|
|
|
|
public bool IsSystemBarVisible
|
|
public bool IsSystemBarVisible
|
|
{
|
|
{
|
|
get { return _isSystemBarVisible; }
|
|
get { return _isSystemBarVisible; }
|
|
- set { this.RaiseAndSetIfChanged(ref _isSystemBarVisible, value); }
|
|
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _isSystemBarVisible, value); }
|
|
}
|
|
}
|
|
|
|
|
|
public bool DisplayEdgeToEdge
|
|
public bool DisplayEdgeToEdge
|
|
{
|
|
{
|
|
get { return _displayEdgeToEdge; }
|
|
get { return _displayEdgeToEdge; }
|
|
- set { this.RaiseAndSetIfChanged(ref _displayEdgeToEdge, value); }
|
|
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _displayEdgeToEdge, value); }
|
|
}
|
|
}
|
|
|
|
|
|
public Thickness SafeAreaPadding
|
|
public Thickness SafeAreaPadding
|
|
{
|
|
{
|
|
get { return _safeAreaPadding; }
|
|
get { return _safeAreaPadding; }
|
|
- set { this.RaiseAndSetIfChanged(ref _safeAreaPadding, value); }
|
|
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _safeAreaPadding, value); }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public bool CanResize
|
|
|
|
+ {
|
|
|
|
+ get { return _canResize; }
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _canResize, value); }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public bool CanMinimize
|
|
|
|
+ {
|
|
|
|
+ get { return _canMinimize; }
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _canMinimize, value); }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public bool CanMaximize
|
|
|
|
+ {
|
|
|
|
+ get { return _canMaximize; }
|
|
|
|
+ set { RaiseAndSetIfChanged(ref _canMaximize, value); }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
public MiniCommand AboutCommand { get; }
|
|
public MiniCommand AboutCommand { get; }
|
|
|
|
|
|
public MiniCommand ExitCommand { get; }
|
|
public MiniCommand ExitCommand { get; }
|
|
@@ -144,7 +180,7 @@ namespace ControlCatalog.ViewModels
|
|
public DateTime? ValidatedDateExample
|
|
public DateTime? ValidatedDateExample
|
|
{
|
|
{
|
|
get => _validatedDateExample;
|
|
get => _validatedDateExample;
|
|
- set => this.RaiseAndSetIfChanged(ref _validatedDateExample, value);
|
|
|
|
|
|
+ set => RaiseAndSetIfChanged(ref _validatedDateExample, value);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|