v0.23.6 — Fix : footer (barre de DL) invisible en plein écran

Bug WPF classique avec WindowStyle=None + WindowChrome : quand la fenêtre
passe en Maximized, elle déborde physiquement de la taille de
ResizeBorderThickness sur chaque bord (~7 px ici). Conséquence : la Row 3
(footer) passe sous la barre des tâches Windows, et la barre de
téléchargement devient invisible alors que tout le reste continue de
fonctionner.

Fix : on applique un Margin=7 sur le Grid root quand WindowState=Maximized
via un DataTrigger sur le RelativeSource Window. Le trigger se déclenche
automatiquement à chaque maximize/restore — pas de code-behind nécessaire.

Test : maximize + minimize + restore plusieurs fois → le footer reste
toujours visible et la fenêtre revient à sa taille normale sans glitch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-03 21:06:54 +02:00
parent bebb701d70
commit be7ccfced5
3 changed files with 20 additions and 4 deletions

View File

@@ -11,7 +11,7 @@
#define MyAppName "PROSERVE Launcher"
#define MyAppShortName "PS_Launcher"
#define MyAppVersion "0.23.5"
#define MyAppVersion "0.23.6"
#define MyAppPublisher "ASTERION VR"
#define MyAppURL "https://asterionvr.com"
#define MyAppExeName "PS_Launcher.exe"

View File

@@ -15,9 +15,9 @@
<Product>PROSERVE Launcher</Product>
<Copyright>© 2026 ASTERION VR — All rights reserved</Copyright>
<RootNamespace>PSLauncher.App</RootNamespace>
<Version>0.23.5</Version>
<AssemblyVersion>0.23.5.0</AssemblyVersion>
<FileVersion>0.23.5.0</FileVersion>
<Version>0.23.6</Version>
<AssemblyVersion>0.23.6.0</AssemblyVersion>
<FileVersion>0.23.6.0</FileVersion>
<!-- Single-file self-contained publish profile (used by `dotnet publish`) -->
<PublishSingleFile>true</PublishSingleFile>

View File

@@ -193,6 +193,22 @@
de fenêtre. Le footer est confiné à la colonne content.
-->
<Grid Background="{StaticResource Brush.Bg.Window}">
<!-- Bug WPF connu avec WindowStyle=None + WindowChrome : en mode
Maximized, la fenêtre déborde de ~7 px sur chaque bord (le
ResizeBorderThickness physique reste). Sans compensation, le footer
(Row 3) passe sous la barre des tâches et la barre de download
devient invisible. On applique un margin de 7 px en mode Maximized
via un trigger sur WindowState. -->
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Margin" Value="0" />
<Style.Triggers>
<DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType=Window}}" Value="Maximized">
<Setter Property="Margin" Value="7" />
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />