mirror of
https://github.com/wabbajack-tools/wabbajack.git
synced 2024-08-30 18:42:17 +00:00
47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
|
using System;
|
||
|
using Avalonia;
|
||
|
using Avalonia.Controls;
|
||
|
using Avalonia.Controls.Primitives;
|
||
|
using Avalonia.Platform;
|
||
|
using Avalonia.Styling;
|
||
|
|
||
|
namespace Wabbajack.App
|
||
|
{
|
||
|
public class FluentWindow : Window, IStyleable
|
||
|
{
|
||
|
Type IStyleable.StyleKey => typeof(Window);
|
||
|
|
||
|
public FluentWindow()
|
||
|
{
|
||
|
ExtendClientAreaToDecorationsHint = true;
|
||
|
ExtendClientAreaTitleBarHeightHint = -1;
|
||
|
|
||
|
TransparencyLevelHint = WindowTransparencyLevel.AcrylicBlur;
|
||
|
|
||
|
this.GetObservable(WindowStateProperty)
|
||
|
.Subscribe(x =>
|
||
|
{
|
||
|
PseudoClasses.Set(":maximized", x == WindowState.Maximized);
|
||
|
PseudoClasses.Set(":fullscreen", x == WindowState.FullScreen);
|
||
|
});
|
||
|
|
||
|
this.GetObservable(IsExtendedIntoWindowDecorationsProperty)
|
||
|
.Subscribe(x =>
|
||
|
{
|
||
|
if (!x)
|
||
|
{
|
||
|
SystemDecorations = SystemDecorations.Full;
|
||
|
TransparencyLevelHint = WindowTransparencyLevel.Blur;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
|
||
|
{
|
||
|
base.OnApplyTemplate(e);
|
||
|
ExtendClientAreaChromeHints =
|
||
|
ExtendClientAreaChromeHints.PreferSystemChrome |
|
||
|
ExtendClientAreaChromeHints.OSXThickTitleBar;
|
||
|
}
|
||
|
}
|
||
|
}
|