在以下XAML,单词 “测试” 中心的水平而不是垂直方向。

我怎样才能得到它垂直居中?

<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>
有帮助吗?

解决方案

一个StackPanel,无论你如何拉伸它,会崩溃各地的孩子们。你不能让他成长不止于此。基本上, “HEIGHT = 700” 是没有帮助你。

因此,无论设置VerticalAlignment上的StackPanel到“中心”,使得StackPanel中进入DockPanel中的中心...或在TextBlock的完全消除的StackPanel并设置VerticalAlignment =“中心”。

其他提示

我似乎问这个问题10个月之前,我得到了上述方案通过的 DockPanel中LastChildFill =真这样的替换的的StackPanel 的工作:

<DockPanel LastChildFill="True">
    <TextBlock
        DockPanel.Dock="Top"
        Text="Test"
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        FontSize="200" x:Name="TheNumber"/>
</DockPanel>

我偶然发现此这似乎很好地工作:

<Grid>
    <TextBlock Text="My Centered Text"
               TextAlignment="Center" 
               VerticalAlignment="Center"/>
</Grid>

网格确保其内的单个文本框填充孤细胞在网格和VerticalAlignment TextBlock中确保了文本内比居中。

只要位置/然而你需要水平对齐文本(上面的代码中心它在这个轴也有,但是这种改变不改变垂直居中)。

内围绕的TextBlock的StackPanel中,检查出VerticalContentAlignment。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top