我有一个堆叠面板,它有另一个堆叠面板,我希望第二个面板位于第一个堆叠面板的中心。我改变了这些面板的方向,垂直对齐无效。
有人为此工作过吗?我想得到你的帮助。
更新
<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>
答案 0 :(得分:2)
这里的问题是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>
答案 1 :(得分:0)
试试这个......你必须将父级StackPanel的Orientation设置为Horizontal。
<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>