diff options
| author | godosa <godosa@godosa.eu> | 2026-10-06 23:39:36 +0200 |
|---|---|---|
| committer | godosa <godosa@godosa.eu> | 2026-10-06 23:39:36 +0200 |
| commit | 39066900773e7857faf2d02e7ed51b71d219d97d (patch) | |
| tree | ffab8e4ddd971626776c3b1f4ce1da2c186c2187 /src/Godosa.Desktop/DisplayMode.cs | |
| download | godosa-engine-39066900773e7857faf2d02e7ed51b71d219d97d.tar.gz godosa-engine-39066900773e7857faf2d02e7ed51b71d219d97d.zip | |
godosa-engine: initial public history
Diffstat (limited to 'src/Godosa.Desktop/DisplayMode.cs')
| -rw-r--r-- | src/Godosa.Desktop/DisplayMode.cs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/Godosa.Desktop/DisplayMode.cs b/src/Godosa.Desktop/DisplayMode.cs new file mode 100644 index 0000000..527fa43 --- /dev/null +++ b/src/Godosa.Desktop/DisplayMode.cs @@ -0,0 +1,19 @@ +using Avalonia.Controls; +using Avalonia.Media; + +namespace Godosa.Desktop; + +/// <summary>Window fullscreen and a UI layer's scale (the 3D view stays outside that layer).</summary> +public static class DisplayMode +{ + public static void SetFullscreen(Window? window, bool fullscreen) + { + if (window is null) return; + bool full = window.WindowState == WindowState.FullScreen; + if (fullscreen && !full) window.WindowState = WindowState.FullScreen; + else if (!fullscreen && full) window.WindowState = WindowState.Normal; + } + + public static void SetUiScale(LayoutTransformControl layer, double factor) => + layer.LayoutTransform = factor == 1.0 ? null : new ScaleTransform(factor, factor); +} |
