Pourquoi le formulaire / la page de mon application UWP est-il tronqué au moment de l'exécution (ne reflète pas la taille au moment de la conception)?
Au moment de la conception dans mon application UWP, j'ai laissé suffisamment de place pour tout ce que je veux (six boutons en haut et un TextBlock qui contiendra finalement plus de texte):

Notez également les blocs de texte en bas de page.
Au moment de l'exécution, le TextBlock supérieur est terriblement tronqué, et tous les TextBlocks en bas du formulaire / page ne s'affichent pas du tout, probablement pour la même raison:

Si cela fonctionne comme prévu (par Microsoft, c'est-à-dire pas par moi), que dois-je faire pour me conformer aux moyens acceptés de créer une mise en page qui sera entièrement visible au moment de l'exécution?
METTRE À JOUR
En maximisant la fenêtre, la partie supérieure semble correcte, mais mes "étiquettes" (TextBlocks) sont invisibles:

Bien que vous ne puissiez pas le voir, il y a de la place en bas pour les étiquettes / blocs de texte; J'ai une marge supérieure et inférieure de la carte définie sur 50: Margin = "0,50,0,50"
MISE À JOUR 2
À la demande de Roy Li, voici le code. Tout d'abord, le XAML:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:CartographerYou"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Custom="using:Windows.UI.Xaml.Controls.Maps"
x:Class="CartographerYou.MainPage"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Loaded="Page_Loaded">
<Grid x:Name="grd">
<Button x:Name="btnLoadMap" Content="Load Map" Margin="20,12,50,0" VerticalAlignment="Top" Click="btnLoadMap_Click" />
<Button x:Name="btnCre8NewMap" Content="Create New Map" Margin="140,12,50,0" VerticalAlignment="Top" Click="btnCre8NewMap_Click"/>
<Button x:Name="btnAddLoc" Content="Add Location" Margin="280,12,50,50" VerticalAlignment="Top" Click="btnAddLoc_Click"/>
<Button x:Name="btnRemoveLoc" Content="Remove Location" Margin="400,12,0,0" VerticalAlignment="Top" Click="btnRemoveLoc_Click"/>
<Button x:Name="btnPrint" Content="Print Map" Margin="570,12,0,0" VerticalAlignment="Top" Click="btnPrint_Click"/>
<Button x:Name="btnSave" Content="Save Map Image" Margin="670,12,0,0" VerticalAlignment="Top" Click="btnSave_Click"/>
<TextBlock x:Name="txtBlckMapType" HorizontalAlignment="Left" Margin="800,16,0,0" Text="Map Style: " TextWrapping="Wrap" VerticalAlignment="Top" FontWeight="Bold"/>
<TextBlock x:Name="txtBlckCurrentMap" HorizontalAlignment="Left" Margin="1040,16,0,0" Text="Current Map: " TextWrapping="Wrap" VerticalAlignment="Top" FontWeight="Bold"/>
<TextBlock x:Name="txtBlckLegend" HorizontalAlignment="Left" Margin="20,960,0,0" Text="LEGEND:" TextWrapping="Wrap" VerticalAlignment="Top" FontWeight="Bold" FontSize="14"/>
<TextBlock x:Name="txtBlckRed" HorizontalAlignment="Left" Margin="90,960,0,0" Text="Red markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckOrange" HorizontalAlignment="Left" Margin="193,960,0,0" Text="Orange markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckYellow" HorizontalAlignment="Left" Margin="296,960,0,0" Text="Yellow markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckGreen" HorizontalAlignment="Left" Margin="399,960,0,0" Text="Green markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckBlue" HorizontalAlignment="Left" Margin="502,960,0,0" Text="Blue markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckIndigo" HorizontalAlignment="Left" Margin="605,960,0,0" Text="Indigo markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckViolet" HorizontalAlignment="Left" Margin="708,960,0,0" Text="Violet markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckBlack" HorizontalAlignment="Left" Margin="811,960,0,0" Text="Black markers" TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckWhite" HorizontalAlignment="Left" Margin="914,960,0,0" Text="White markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckGray" HorizontalAlignment="Left" Margin="1017,960,0,0" Text="Gray markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<Custom:MapControl x:Name="map" Margin="0,50,0,50" MapServiceToken="Gr8GooglyMoogly" />
<ComboBox x:Name="cmbxMaptype" Margin="876,12,0,0" Width="160" DropDownClosed="cmbxMaptype_DropDownClosed"/>
</Grid>
</Page>
... puis, le code-behind qui peut avoir un relèvement:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
txtBlckRed.Foreground = new SolidColorBrush(Windows.UI.Colors.Red);
txtBlckOrange.Foreground = new SolidColorBrush(Windows.UI.Colors.Orange);
txtBlckYellow.Foreground = new SolidColorBrush(Windows.UI.Colors.Yellow);
txtBlckGreen.Foreground = new SolidColorBrush(Windows.UI.Colors.Green);
txtBlckBlue.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);
txtBlckIndigo.Foreground = new SolidColorBrush(Windows.UI.Colors.Indigo);
txtBlckViolet.Foreground = new SolidColorBrush(Windows.UI.Colors.Violet);
txtBlckBlack.Foreground = new SolidColorBrush(Windows.UI.Colors.Black);
txtBlckWhite.Foreground = new SolidColorBrush(Windows.UI.Colors.White);
txtBlckGray.Foreground = new SolidColorBrush(Windows.UI.Colors.Gray);
}
Réponses
La raison du comportement est que vous définissez une valeur absolue pour les margin
propriétés des TextBlocks. La valeur est trop grande, la position de ces TextBlocks est donc hors de la disposition visible de votre application. En d'autres termes, la mise en page n'est pas adaptative.
Voici un moyen simple de corriger la mise en page:
<Grid x:Name="grd">
<!--Add row definitions-->
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!--top area controls-->
<Button x:Name="btnLoadMap" Content="Load Map" Margin="20,12,50,0" VerticalAlignment="Top" Click="btnLoadMap_Click" />
<Button x:Name="btnCre8NewMap" Content="Create New Map" Margin="140,12,50,0" VerticalAlignment="Top" Click="btnCre8NewMap_Click"/>
<Button x:Name="btnAddLoc" Content="Add Location" Margin="280,12,50,50" VerticalAlignment="Top" Click="btnAddLoc_Click"/>
<Button x:Name="btnRemoveLoc" Content="Remove Location" Margin="400,12,0,0" VerticalAlignment="Top" Click="btnRemoveLoc_Click"/>
<Button x:Name="btnPrint" Content="Print Map" Margin="570,12,0,0" VerticalAlignment="Top" Click="btnPrint_Click"/>
<Button x:Name="btnSave" Content="Save Map Image" Margin="670,12,0,0" VerticalAlignment="Top" Click="btnSave_Click"/>
<TextBlock x:Name="txtBlckMapType" HorizontalAlignment="Left" Margin="800,16,0,0" Text="Map Style: " TextWrapping="Wrap" VerticalAlignment="Top" FontWeight="Bold"/>
<TextBlock x:Name="txtBlckCurrentMap" HorizontalAlignment="Left" Margin="1040,16,0,0" Text="Current Map: " TextWrapping="Wrap" VerticalAlignment="Top" FontWeight="Bold"/>
<ComboBox x:Name="cmbxMaptype" Margin="876,12,0,0" Width="160" DropDownClosed="cmbxMaptype_DropDownClosed"/>
<!--map controls-->
<Maps:MapControl Grid.Row="1" x:Name="MapControl1" Style="Terrain" />
<!--bottom area controls-->
<TextBlock x:Name="txtBlckLegend" HorizontalAlignment="Left" Grid.Row="2" Margin="20,12,0,0" Text="LEGEND:" TextWrapping="Wrap" VerticalAlignment="Top" FontWeight="Bold" FontSize="14"/>
<TextBlock x:Name="txtBlckRed" HorizontalAlignment="Left" Grid.Row="2" Margin="90,12,0,0" Text="Red markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckOrange" HorizontalAlignment="Left" Grid.Row="2" Margin="193,12,0,0" Text="Orange markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckYellow" HorizontalAlignment="Left" Grid.Row="2" Margin="296,12,0,0" Text="Yellow markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckGreen" HorizontalAlignment="Left" Grid.Row="2" Margin="399,12,0,0" Text="Green markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckBlue" HorizontalAlignment="Left" Grid.Row="2" Margin="502,12,0,0" Text="Blue markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckIndigo" HorizontalAlignment="Left" Grid.Row="2" Margin="605,12,0,0" Text="Indigo markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckViolet" HorizontalAlignment="Left" Grid.Row="2" Margin="708,12,0,0" Text="Violet markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckBlack" HorizontalAlignment="Left" Grid.Row="2" Margin="811,12,0,0" Text="Black markers" TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckWhite" HorizontalAlignment="Left" Grid.Row="2" Margin="914,12,0,0" Text="White markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
<TextBlock x:Name="txtBlckGray" HorizontalAlignment="Left" Grid.Row="2" Margin="1017,12,0,0" Text="Gray markers " TextWrapping="Wrap" VerticalAlignment="Top"/>
</Grid>
Ce que j'ai fait, c'est de diviser la grille en trois lignes et de m'assurer que les contrôles sont placés dans la bonne ligne. J'ai ajouté Grid.Row="2"
pour les TextBlocks afin que ces TextBlocks apparaissent dans la dernière ligne qui est en bas.

Désormais, les blocs de texte s'afficheront toujours en bas, même lorsque votre application n'est pas maximisée