Абсолютно центрированный контент внутри панели макета WPF - PullRequest
5 голосов
/ 23 февраля 2009

Мне нужно найти способ абсолютно центрировать содержимое LayoutPanel в WPF. У меня есть два элемента текстового блока, которые должны отображаться в вертикальном и горизонтальном центре панели, не полагаясь на абсолютные высоты и ширины.

Это то, что я могу сделать довольно легко с одним элементом, так как у любого ContentControl может быть установлено его свойство verticalContentAlignment, но тогда у вас есть только один дочерний элемент для воспроизведения, и я возвращаюсь к исходной точке.

Любая помощь будет высоко оценена.

Ответы [ 2 ]

17 голосов
/ 23 февраля 2009
<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, который делает это автоматически.

2 голосов
/ 23 февраля 2009

Исправлено, как я и просил!

Мне нужно было поместить StackPanel внутри ContentControl и установить для StackPanels VerticalAlignment значение Center. Кажется очевидным сейчас!

...