UI: borderless window with custom chrome, default 1280x720
Window ------ - Default size 1280x720 (16:9 widescreen — matches the screenshot framing the user requested), MinWidth=980 MinHeight=600. - WindowStyle=None + ResizeMode=CanResize: drop the OS title bar but keep edge resize. - WindowChrome: CaptionHeight=56 makes the top bar Border the drag-handle for moving the window. ResizeBorderThickness=6 gives 6px of grab area on each edge, GlassFrameThickness=0 disables Aero. Custom chrome buttons --------------------- Three new style keys in Theme.xaml: - WindowControlButton: 46x32 transparent button, hovers at #FFFFFF22 (semi-translucent white) — used for minimize and maximize/restore. - WindowCloseButton: same shape, hovers at #E81123 (Win11 red). Three handlers wired up: OnMinimizeClick, OnMaxRestoreClick, OnCloseClick. Caption click-through --------------------- WindowChrome reserves the caption area for window dragging by default — buttons inside it would otherwise feel "dead". Each interactive control in the top bar (Vérifier les MAJ / Dossier / License pill / Activer / Paramètres / min / max / close) gets shell:WindowChrome.IsHitTestVisibleInChrome="True" so clicks reach the button instead of starting a drag. The text/logo region remains draggable. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -135,6 +135,50 @@
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- Boutons de chrome window (min / max / close), 46x40 façon Windows -->
|
||||
<Style x:Key="WindowControlButton" TargetType="Button">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="Foreground" Value="{StaticResource Brush.Text.Primary}" />
|
||||
<Setter Property="Cursor" Value="Hand" />
|
||||
<Setter Property="Width" Value="46" />
|
||||
<Setter Property="Height" Value="32" />
|
||||
<Setter Property="Padding" Value="0" />
|
||||
<Setter Property="BorderThickness" Value="0" />
|
||||
<Setter Property="FontSize" Value="14" />
|
||||
<Setter Property="FontFamily" Value="Segoe UI" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="Bd" Background="{TemplateBinding Background}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background" Value="#FFFFFF22" />
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="WindowCloseButton" TargetType="Button" BasedOn="{StaticResource WindowControlButton}">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="Bd" Background="{TemplateBinding Background}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background" Value="#E81123" />
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="IconButton" TargetType="Button">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="Foreground" Value="{StaticResource Brush.Text.Secondary}" />
|
||||
|
||||
Reference in New Issue
Block a user