WPF布局面板中的绝对居中内容

6
我需要找到一种绝对居中WPF布局面板内容的方法。我有两个文本块元素,必须在面板的垂直和水平中心呈现,而不依赖于绝对高度和宽度。
如果只有一个元素,这很容易做到,因为任何ContentControl都可以设置其verticalContentAlignment属性,但是您只能使用一个子元素,并且我又回到了原点。
非常感谢任何帮助。
2个回答

20
<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid VerticalAlignment="Center">
        <StackPanel HorizontalAlignment="Center">
            <TextBlock>First</TextBlock>
            <TextBlock>and the second</TextBlock>
        </StackPanel>
    </Grid>
</Window>

你也可以编写自己的 Panel 子类,以自动完成此操作。


5
实际上,你不需要使用包装网格。只需在StackPanel本身上设置HorizontalAlignment和VerticalAlignment属性,就可以正常运行。 - Mark A. Donohoe

2

我按照我的要求解决了它!

我需要做的是在ContentControl内部放置一个StackPanel,并将StackPanels的垂直对齐方式设置为Center。现在看来似乎很明显!


2
顺便说一句,如果你还没有使用过KaXaml,那么它是一个修复类似问题的绝佳工具...比在Visual Studio/Blend中进行更改/重新编译要快得多 :-) - Steven Robbins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接