Comment puis-je aligner verticalement un TextBox dans un StackPanel?
Dans le code XAML suivant, le mot "Test" centres de horizontalement mais pas verticalement.
Comment puis-je obtenir centrer verticalement?
<Window x:Class="TestVerticalAlign2343.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowStartupLocation="CenterScreen"
Title="Window1" Height="768" Width="1024">
<DockPanel LastChildFill="True">
<Slider x:Name="TheSlider"
DockPanel.Dock="Left"
Orientation="Vertical"
HorizontalAlignment="Center"
HorizontalContentAlignment="Center"
Minimum="0"
Maximum="10"
Cursor="Hand"
Value="{Binding CurrentSliderValue}"
IsDirectionReversed="True"
IsSnapToTickEnabled="True"
Margin="10 10 0 10"/>
<Border DockPanel.Dock="Right" Background="Beige"
Padding="10"
Margin="10"
CornerRadius="5">
<StackPanel Height="700">
<TextBlock
Text="Test"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="200" x:Name="TheNumber"/>
</StackPanel>
</Border>
</DockPanel>
</Window>
source d'informationauteur Edward Tanguay
Vous devez vous connecter pour publier un commentaire.
Un stackpanel, peu importe comment vous étirer, va s'effondrer autour de l'enfant. vous ne pouvez pas le faire grandir plus que cela. En gros, que "Height=700" n'est pas de vous aider.
Donc, soit l'ensemble VerticalAlignment sur le StackPanel de "centre", de sorte que le stackpanel va dans le centre de la dockpanel...ou supprimer le stackpanel complètement et de se définir VerticalAlignment="Center" sur le TextBlock.
Semble que je posé cette question il y a 10 moisj'ai reçu le scénario ci-dessus pour travailler en remplaçant le StackPanel avec DockPanel LastChildFill=True comme ceci:
Je suis tombé sur ce qui semble fonctionner parfaitement:
La Grille assure que la zone de texte unique dans elle remplit la cellule d'isolement dans la grille et de la VerticalAlignment dans le TextBlock assure que le texte est centré à l'intérieur de.
Simplement de position/d'aligner votre texte à l'horizontale cependant vous avez besoin (l'extrait ci-dessus centres dans cet axe également, mais en changeant cela ne modifie en rien le centrage vertical).
À l'intérieur de la StackPanel qui entoure le TextBlock, découvrez VerticalContentAlignment.