Force black background under bg image, Launcher subtitle bold

The implicit Window style in Theme.xaml WAS being applied, but defensive
coding wins: when MainWindow.Background was unset, WPF's intermediate
composition surface for elements with Opacity<1 (the Image) blended
against whatever the parent presented. In some Windows render paths
that's effectively the system white. Setting Window.Background="Black"
AND Grid.Background="Black" pins the surface under the image to pure
black explicitly, no system theme involvement.

Also drop the previous "darken overlay" Rectangle — once the surface
under the image is genuinely black, the image at 0.25 opacity is
already where we want it, no second dimming layer needed.

Launcher subtitle: FontWeight Light → Bold so it competes equally with
PROSERVE in the Pirulen wordmark.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-02 09:05:14 +02:00
parent 911940753c
commit dd4ee9bbaa

View File

@@ -3,6 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:PSLauncher.App.ViewModels" xmlns:vm="clr-namespace:PSLauncher.App.ViewModels"
Title="PROSERVE Launcher" Title="PROSERVE Launcher"
Background="Black"
Width="980" Height="780" Width="980" Height="780"
MinWidth="780" MinHeight="500" MinWidth="780" MinHeight="500"
WindowStartupLocation="CenterScreen" WindowStartupLocation="CenterScreen"
@@ -145,22 +146,21 @@
</DataTemplate> </DataTemplate>
</Window.Resources> </Window.Resources>
<Grid> <Grid Background="Black">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="*" /> <RowDefinition Height="*" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<!-- Background image (sous tout le reste, ne capte pas la souris) --> <!-- Background image (sous tout le reste, ne capte pas la souris).
Le fond noir du Grid garantit que les zones transparentes de l'image
(et l'image dans son ensemble à faible opacity) reposent sur du noir
pur, sans héritage du brush système. -->
<Image Grid.Row="0" Grid.RowSpan="3" <Image Grid.Row="0" Grid.RowSpan="3"
Source="pack://application:,,,/Resources/Background.png" Source="pack://application:,,,/Resources/Background.png"
Stretch="UniformToFill" Stretch="UniformToFill"
Opacity="0.18" Opacity="0.25"
IsHitTestVisible="False" />
<!-- Voile noir semi-opaque par-dessus pour assombrir encore et garantir la lisibilité -->
<Rectangle Grid.Row="0" Grid.RowSpan="3"
Fill="Black" Opacity="0.35"
IsHitTestVisible="False" /> IsHitTestVisible="False" />
<!-- Top bar --> <!-- Top bar -->
@@ -176,7 +176,7 @@
VerticalAlignment="Center" /> VerticalAlignment="Center" />
<TextBlock Text="Launcher" <TextBlock Text="Launcher"
FontSize="20" FontSize="20"
FontWeight="Light" FontWeight="Bold"
Foreground="{StaticResource Brush.Text.Primary}" Foreground="{StaticResource Brush.Text.Primary}"
VerticalAlignment="Center" VerticalAlignment="Center"
Margin="14,0,0,0" /> Margin="14,0,0,0" />