feat(ui): server overlay full-screen on mobile, larger touch targets

On mobile the server settings panel now fills the entire screen
(no MaxWidth/MaxHeight/Margin constraints, no rounded corners) using
a desktop-only Border.desktop-overlay style so inline values never
fight the style system. Input font sizes increased (11→13/15px),
known-server list taller (200→300px) and server hostname larger (13→15px).
Desktop layout unchanged.
This commit is contained in:
2026-06-15 10:59:05 +02:00
parent 1b784a6c73
commit 8b960458ee
+31 -19
View File
@@ -12,6 +12,19 @@
<vm:MainWindowViewModel/> <vm:MainWindowViewModel/>
</Design.DataContext> </Design.DataContext>
<UserControl.Styles>
<!-- Su desktop gli overlay card sono centrati con dimensione massima;
su mobile il default (stretch, nessun margine) occupa tutta la schermata. -->
<Style Selector="Border.desktop-overlay">
<Setter Property="MaxWidth" Value="540"/>
<Setter Property="MaxHeight" Value="540"/>
<Setter Property="Margin" Value="16"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="CornerRadius" Value="8"/>
</Style>
</UserControl.Styles>
<Grid RowDefinitions="Auto,*,Auto"> <Grid RowDefinitions="Auto,*,Auto">
<!-- ============ MENU (stile Electrum) ============ --> <!-- ============ MENU (stile Electrum) ============ -->
@@ -734,9 +747,8 @@
Tapped="OnServerOverlayBackdropTapped" Tapped="OnServerOverlayBackdropTapped"
IsVisible="{Binding IsServerSettingsOpen}"> IsVisible="{Binding IsServerSettingsOpen}">
<Border Background="{DynamicResource SystemControlBackgroundChromeMediumLowBrush}" <Border Background="{DynamicResource SystemControlBackgroundChromeMediumLowBrush}"
BorderBrush="Gray" BorderThickness="1" CornerRadius="8" BorderBrush="Gray" BorderThickness="1"
MaxWidth="540" MaxHeight="540" Margin="16" Classes.desktop-overlay="{Binding IsDesktop}">
HorizontalAlignment="Center" VerticalAlignment="Center">
<ScrollViewer> <ScrollViewer>
<StackPanel Margin="24" Spacing="14"> <StackPanel Margin="24" Spacing="14">
<TextBlock Text="{Binding Loc[server.title]}" <TextBlock Text="{Binding Loc[server.title]}"
@@ -758,20 +770,20 @@
<CheckBox Grid.Row="1" Grid.Column="2" IsChecked="{Binding UseSsl}" <CheckBox Grid.Row="1" Grid.Column="2" IsChecked="{Binding UseSsl}"
Margin="10,2,0,0" VerticalAlignment="Center"/> Margin="10,2,0,0" VerticalAlignment="Center"/>
</Grid> </Grid>
<!-- Host + porta — Mobile: verticale --> <!-- Host + porta — Mobile: verticale, font più grandi -->
<StackPanel Spacing="8" IsVisible="{Binding IsMobile}"> <StackPanel Spacing="10" IsVisible="{Binding IsMobile}">
<StackPanel Spacing="3"> <StackPanel Spacing="4">
<TextBlock Text="{Binding Loc[server.host]}" FontSize="11" Foreground="Gray"/> <TextBlock Text="{Binding Loc[server.host]}" FontSize="13" Foreground="Gray"/>
<TextBox Text="{Binding ServerHost}" FontFamily="monospace"/> <TextBox Text="{Binding ServerHost}" FontFamily="monospace" FontSize="15"/>
</StackPanel> </StackPanel>
<Grid ColumnDefinitions="*,Auto"> <Grid ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0" Spacing="3"> <StackPanel Grid.Column="0" Spacing="4">
<TextBlock Text="{Binding Loc[server.port]}" FontSize="11" Foreground="Gray"/> <TextBlock Text="{Binding Loc[server.port]}" FontSize="13" Foreground="Gray"/>
<TextBox Text="{Binding ServerPort}" FontFamily="monospace"/> <TextBox Text="{Binding ServerPort}" FontFamily="monospace" FontSize="15"/>
</StackPanel> </StackPanel>
<StackPanel Grid.Column="1" Spacing="3" Margin="16,0,0,0" <StackPanel Grid.Column="1" Spacing="4" Margin="20,0,0,0"
VerticalAlignment="Center"> VerticalAlignment="Center">
<TextBlock Text="TLS" FontSize="11" Foreground="Gray" <TextBlock Text="TLS" FontSize="13" Foreground="Gray"
HorizontalAlignment="Center"/> HorizontalAlignment="Center"/>
<CheckBox IsChecked="{Binding UseSsl}" <CheckBox IsChecked="{Binding UseSsl}"
HorizontalAlignment="Center"/> HorizontalAlignment="Center"/>
@@ -815,7 +827,7 @@
<TextBlock Text="{Binding Loc[server.known]}" FontSize="11" Foreground="Gray"/> <TextBlock Text="{Binding Loc[server.known]}" FontSize="11" Foreground="Gray"/>
<ListBox ItemsSource="{Binding KnownServers}" <ListBox ItemsSource="{Binding KnownServers}"
SelectedItem="{Binding SelectedKnownServer}" SelectedItem="{Binding SelectedKnownServer}"
MaxHeight="200"> MaxHeight="300">
<ListBox.Styles> <ListBox.Styles>
<Style Selector="ListBox:empty"> <Style Selector="ListBox:empty">
<Setter Property="Template"> <Setter Property="Template">
@@ -843,16 +855,16 @@
</TextBlock> </TextBlock>
</Grid> </Grid>
<!-- Mobile: host sopra, porte sotto --> <!-- Mobile: host sopra, porte sotto -->
<StackPanel Spacing="1" Margin="0,3" <StackPanel Spacing="2" Margin="0,4"
IsVisible="{Binding $parent[UserControl].((vm:MainWindowViewModel)DataContext).IsMobile}"> IsVisible="{Binding $parent[UserControl].((vm:MainWindowViewModel)DataContext).IsMobile}">
<TextBlock Text="{Binding Host}" <TextBlock Text="{Binding Host}"
FontFamily="monospace" FontSize="13" FontFamily="monospace" FontSize="15"
TextTrimming="CharacterEllipsis"/> TextTrimming="CharacterEllipsis"/>
<StackPanel Orientation="Horizontal" Spacing="12"> <StackPanel Orientation="Horizontal" Spacing="16">
<TextBlock FontSize="11" Foreground="Gray"> <TextBlock FontSize="12" Foreground="Gray">
<Run Text="tcp "/><Run Text="{Binding TcpPort}"/> <Run Text="tcp "/><Run Text="{Binding TcpPort}"/>
</TextBlock> </TextBlock>
<TextBlock FontSize="11" Foreground="Gray"> <TextBlock FontSize="12" Foreground="Gray">
<Run Text="ssl "/><Run Text="{Binding SslPort}"/> <Run Text="ssl "/><Run Text="{Binding SslPort}"/>
</TextBlock> </TextBlock>
</StackPanel> </StackPanel>