UI: float "Vérifier les MAJ" over the body, hide footer when idle

The check-updates button was anchored inside the footer band, which
felt heavy and obscured the background bitmap. Move it to a floating
position: bottom-left of the body, 32px from the left edge, 24px above
where the footer would render. The button now sits directly over the
ASTERION VR background art, giving the chrome a lighter look.

The footer goes back to its original behavior — visible only when busy
or when there's a status message — instead of being permanently shown
just to host the check button.

Implementation: wrap the body's ScrollViewer in a single-cell Grid so
a sibling Button with HorizontalAlignment=Left, VerticalAlignment=
Bottom can overlay it without interfering with the version cards or
the scroll behavior.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-02 09:51:47 +02:00
parent 45b2baf399
commit b78b0b8fb9

View File

@@ -290,8 +290,9 @@
</Grid>
</Border>
<!-- Body -->
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
<!-- Body : Grid pour pouvoir superposer le bouton flottant "Vérifier les MAJ" -->
<Grid Grid.Row="1">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Margin="32,28">
<!-- ========= FEATURED (version courante) ========= -->
@@ -486,34 +487,27 @@
</StackPanel>
</ScrollViewer>
<!-- Footer : toujours visible.
Ligne 1 : bouton "Vérifier les MAJ" à gauche (toujours présent)
Ligne 2 : statut + progress bar (visible quand busy / status non vide) -->
<Border Grid.Row="2" Background="{StaticResource Brush.Bg.Footer}"
BorderBrush="{StaticResource Brush.Border}" BorderThickness="0,1,0,0"
Padding="20,10">
<StackPanel>
<!-- Ligne 1 : actions permanentes -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0"
<!-- Bouton flottant "Vérifier les MAJ" : ancré bas-gauche du body, au-dessus
du background bitmap, à l'extérieur du footer. -->
<Button HorizontalAlignment="Left" VerticalAlignment="Bottom"
Margin="32,0,0,24"
Style="{StaticResource SecondaryButton}"
Content="🔄 Vérifier les MAJ"
Command="{Binding CheckForUpdatesCommand}" />
<Button Grid.Column="2"
Style="{StaticResource SecondaryButton}"
Content="Annuler"
Command="{Binding CancelDownloadCommand}"
Visibility="{Binding IsBusy, Converter={StaticResource BoolToVisibility}}" />
</Grid>
<!-- Ligne 2 : statut + progression (visible si busy ou message) -->
<StackPanel Margin="0,8,0,0"
<!-- Footer : visible uniquement quand busy / status à afficher.
Le bouton "Vérifier les MAJ" a été déplacé en flottant au-dessus du body. -->
<Border Grid.Row="2" Background="{StaticResource Brush.Bg.Footer}"
BorderBrush="{StaticResource Brush.Border}" BorderThickness="0,1,0,0"
Padding="20,10"
Visibility="{Binding FooterVisibility}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<TextBlock Text="{Binding FooterText}"
Foreground="{StaticResource Brush.Text.Secondary}"
FontSize="12" />
@@ -522,7 +516,13 @@
Foreground="{StaticResource Brush.Accent}"
Background="#2A2A30" BorderThickness="0" />
</StackPanel>
</StackPanel>
<Button Grid.Column="1"
Style="{StaticResource SecondaryButton}"
Content="Annuler"
VerticalAlignment="Center" Margin="12,0,0,0"
Command="{Binding CancelDownloadCommand}"
Visibility="{Binding IsBusy, Converter={StaticResource BoolToVisibility}}" />
</Grid>
</Border>
</Grid>
</Window>