У меня есть диалоговое окно с полным экраном и вы хотите центрировать холст. Он хорошо работает с сеткой с вертикальной/HorizontalAlignment для ярлыка, например, но когда я пытаюсь это верхний левый угол получает по центру вместо середины холста:Как правильно центрировать холст WPF?
<Window
Title=""
Topmost="True" WindowStyle="None" WindowState="Maximized"
>
<Grid>
<Grid VerticalAlignment="Center" HorizontalAlignment="Center">
<Canvas>
<Border Margin="20"
Background="White"
BorderBrush="Black"
BorderThickness="2"
Padding="20" >
<DockPanel Margin="10">
<StackPanel DockPanel.Dock="Top" Margin="0 0 0 50"
Orientation="Vertical">
<Label FontSize="32" Content="Hello"></Label>
</StackPanel>
<StackPanel HorizontalAlignment="Right"
DockPanel.Dock="Bottom"
Orientation="Horizontal">
<Label FontSize="32" Content="Hello"></Label>
</StackPanel>
</DockPanel>
</Border>
</Canvas>
</Grid>
Это потому, что вы не установили ширину и высоту на холсте, и в случае холста, свойства ActualWidth и ActualHeight (которые используются для макета) по умолчанию 0. –
Вам нужен холст, можно ли его заменить сеткой? – Tony