我想要创建一个启动屏幕,其中图像和加载状态(带有进度条的文本块)位于另一个屏幕的顶部。
我写了下一段代码:
<Window
WindowStyle="None" ResizeMode="NoResize"
d:DesignHeight="300" d:DesignWidth="300">
<DockPanel LastChildFill="True">
<Grid DockPanel.Dock="Bottom" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Text}" Grid.Row="0" Background="Transparent"/>
<ProgressBar Maximum="100" Value="{Binding ProgressValue, Mode=OneWay}" Height="5" Grid.Row="1" IsIndeterminate="{Binding IsIndeterminate}"/>
</Grid>
<Image Source="{Binding ImageSource}" Stretch="None"/>
</DockPanel>
不幸的是,TextBlock仍然删除了它位于顶部的图片的某些部分。我认为原因是DockPanel,但我不知道如何做其他方式。
发布于 2015-04-17 14:08:02
TextBlock不移除Image的一部分,因为它不在它上面,而是在它下面。这是因为DockPanel没有把孩子们放在一起。如果您想将内部Grid放在Image之上,那么最简单的解决方案是用Grid替换DockPanel
<Grid>
<Image Source="{Binding ImageSource}" Stretch="None" />
<Grid Background="Transparent" VerticalAlignment="Bottom">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Text}" Grid.Row="0"/>
<ProgressBar Maximum="100" Value="{Binding ProgressValue, Mode=OneWay}" Height="5" Grid.Row="1" IsIndeterminate="{Binding IsIndeterminate}"/>
</Grid>
</Grid>https://stackoverflow.com/questions/29701283
复制相似问题