В следующем XAML слово "Test" центрируется горизонтально, но не вертикально.
Как я могу заставить это центрироваться вертикально?
<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>
Стеклопанель, как бы вы ее не растягивали, обрушится вокруг дочерних элементов. вы не можете заставить его расти больше, чем это. По сути, «Высота = 700» вам не помогает.
Так что либо установите для VerticalAlignment на StackPanel значение «center», чтобы панель стека переходила в центр док-панели ... либо полностью удалите панель стека и установите VerticalAlignment = «Центр» в TextBlock.
Кажется, я задал этот вопрос 10 месяцев назад , я получил приведенный выше сценарий для работы, заменив StackPanel на DockPanel LastChildFill = True следующим образом:
<DockPanel LastChildFill="True">
<TextBlock
DockPanel.Dock="Top"
Text="Test"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="200" x:Name="TheNumber"/>
</DockPanel>
Внутри StackPanel, окружающего TextBlock, проверьте VerticalContentAlignment.