如何在其父项高度的中心垂直对齐子项
how to vertically align a child item in centre of its parent height
我有一个堆栈面板,它有另一个堆栈面板,我希望第二个面板位于第一个堆栈的中心 panel.I 更改了这些面板的方向和垂直对齐没有任何效果..
有人研究过这个吗?我想得到你的帮助。
更新:
<StackPanel Grid.Row="0" Grid.RowSpan="4" Background="White" Visibility="Visible" Orientation="Vertical">
<StackPanel VerticalAlignment="Center" Grid.Row="0">
<ProgressBar Margin="0,15,0,0"
IsIndeterminate="True"
IsEnabled="True" Foreground="Black"/>
<TextBlock Visibility="Visible" Margin="6,6,6,15" Foreground="Black" FontSize="21" TextWrapping="WrapWholeWords" HorizontalAlignment="Center" Text="Loading..."/>
</StackPanel>
</StackPanel>
试试这个...您必须将父级 StackPanel 的方向设置为水平。
<StackPanel Grid.Row="0" Grid.RowSpan="4" Background="White" Visibility="Visible" Orientation="Horizontal">
<StackPanel VerticalAlignment="Center" Grid.Row="0">
<ProgressBar Margin="0,15,0,0"
IsIndeterminate="True"
IsEnabled="True" Foreground="Black"/>
<TextBlock Visibility="Visible" Margin="6,6,6,15" Foreground="Black" FontSize="21" TextWrapping="WrapWholeWords" HorizontalAlignment="Center" Text="Loading..."/>
</StackPanel>
</StackPanel>
这里的问题是StackPanel
。堆叠面板的作用是从一侧(顶部、左侧...)堆叠项目,因此无法将项目完全居中 StackPanel
。当项目垂直堆叠时,VerticalAlignment
属性 对面板的直接子项没有影响。这同样适用于 HorizontalAlignment
和水平堆叠。
您应该使用 Grid
或 Border
来居中项目(我还删除了 Visibility
值,因为 Visible
是默认状态):
<Grid Grid.Row="0"
Grid.RowSpan="4"
Background="White"
>
<StackPanel HorizontalAlignment="Center"
VerticalAlignment="Center"
Grid.Row="0"
>
<ProgressBar Margin="0,15,0,0"
IsIndeterminate="True"
IsEnabled="True"
Foreground="Black"
/>
<TextBlock Margin="6,6,6,15"
Foreground="Black"
FontSize="21"
TextWrapping="WrapWholeWords"
HorizontalAlignment="Center"
Text="Loading..."
/>
</StackPanel>
</Grid>
我有一个堆栈面板,它有另一个堆栈面板,我希望第二个面板位于第一个堆栈的中心 panel.I 更改了这些面板的方向和垂直对齐没有任何效果..
有人研究过这个吗?我想得到你的帮助。
更新:
<StackPanel Grid.Row="0" Grid.RowSpan="4" Background="White" Visibility="Visible" Orientation="Vertical">
<StackPanel VerticalAlignment="Center" Grid.Row="0">
<ProgressBar Margin="0,15,0,0"
IsIndeterminate="True"
IsEnabled="True" Foreground="Black"/>
<TextBlock Visibility="Visible" Margin="6,6,6,15" Foreground="Black" FontSize="21" TextWrapping="WrapWholeWords" HorizontalAlignment="Center" Text="Loading..."/>
</StackPanel>
</StackPanel>
试试这个...您必须将父级 StackPanel 的方向设置为水平。
<StackPanel Grid.Row="0" Grid.RowSpan="4" Background="White" Visibility="Visible" Orientation="Horizontal">
<StackPanel VerticalAlignment="Center" Grid.Row="0">
<ProgressBar Margin="0,15,0,0"
IsIndeterminate="True"
IsEnabled="True" Foreground="Black"/>
<TextBlock Visibility="Visible" Margin="6,6,6,15" Foreground="Black" FontSize="21" TextWrapping="WrapWholeWords" HorizontalAlignment="Center" Text="Loading..."/>
</StackPanel>
</StackPanel>
这里的问题是StackPanel
。堆叠面板的作用是从一侧(顶部、左侧...)堆叠项目,因此无法将项目完全居中 StackPanel
。当项目垂直堆叠时,VerticalAlignment
属性 对面板的直接子项没有影响。这同样适用于 HorizontalAlignment
和水平堆叠。
您应该使用 Grid
或 Border
来居中项目(我还删除了 Visibility
值,因为 Visible
是默认状态):
<Grid Grid.Row="0"
Grid.RowSpan="4"
Background="White"
>
<StackPanel HorizontalAlignment="Center"
VerticalAlignment="Center"
Grid.Row="0"
>
<ProgressBar Margin="0,15,0,0"
IsIndeterminate="True"
IsEnabled="True"
Foreground="Black"
/>
<TextBlock Margin="6,6,6,15"
Foreground="Black"
FontSize="21"
TextWrapping="WrapWholeWords"
HorizontalAlignment="Center"
Text="Loading..."
/>
</StackPanel>
</Grid>