<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StatusBar Height="25" Grid.Row="5">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StatusBarItem Content="Text" FontSize="10" Height="20" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0"/>
<StatusBarItem Content="Text" FontSize="10" Height="20" VerticalAlignment="Center" HorizontalAlignment="Right" Grid.Column="1"/>
<ProgressBar Width="100" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="2"/>
</Grid>
</StatusBar>
</Grid>
请帮助初学者。
我想创建一个StatusBar并将其分为3个元素。我想对齐左侧的第一个元素。第二个是正确的。第三个在中心。 在第一个和第二个元素中,我想找到文本。在第三个我想找到StatusBar。
为什么StatusBar中的网格不想伸展到StatusBar并格式化元素? 我做错了什么?
对不起,如果有错误。
答案 0 :(得分:3)
因为StatusBar
的默认ItemsPanel不会告诉我们我们有多少空间,所以我们需要为它提供一个空间(如grid
)。
可能的解决方案如下(直接使用网格作为ItemsPanel):
<StatusBar Height="25" Grid.Row="5">
<StatusBar.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</StatusBar.ItemsPanel>
<StatusBarItem Content="Text" FontSize="10" Height="20" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0"/>
<StatusBarItem Content="Text" FontSize="10" Height="20" VerticalAlignment="Center" HorizontalAlignment="Right" Grid.Column="1"/>
<ProgressBar Width="100" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="2"/>
</StatusBar>