0

我试图让我的 ListBoxItems 的背景由 ProgressBar 构成,但“Z-Index”的东西似乎对我不起作用。我在某处读到 Grid 不支持 Z-Index(如 Canvas),并且默认情况下元素按添加顺序呈现。这显然也是我的情况。但是当我单击一个列表框项时,我的 TextBlock(见下文)消失了,显然是因为 ProgressBar 出现在了前面。有趣的是,其他子控件(图像和动画)并没有消失,所以我有点困惑。

这是我的 ListBox 的 ItemTemplate:

<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid Name="ListBoxGrid">
            <Grid.RowDefinitions>
                <RowDefinition Height="100"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="100"/>
            </Grid.ColumnDefinitions>
            <ProgressBar Grid.Column="0" Grid.ColumnSpan="3" Background="White" Value="{Binding Path=SendProgress}" />
            <Image Width="50" Stretch="Uniform" Grid.Column="0" HorizontalAlignment="Center" Margin="20,0,0,0" VerticalAlignment="Center" Source="{Binding Image}" />
            <TextBlock FontSize="16" Grid.Column="1" VerticalAlignment="Center" Text="{Binding Path=ImageFilePath, Padding="20,0,0,0" />
            <Canvas Grid.Column="2">
                <Image Canvas.Left="25" Canvas.Top="25" Width="50" Height="50" Source="{Binding Status}" />
                <my:LoadingAnimation HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100" Canvas.Left="5" Canvas.Top="5" Visibility="{Binding IsSending, Converter={StaticResource BooleanToVisibilityConverter1}}" />
            </Canvas>
        </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>
4

1 回答 1

2

Panel.ZIndex 属性对我来说很好 示例代码:

<Grid>
    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Panel.ZIndex="2">
        <Button Name="goButton" Height="30" Width="50" Margin="0,10,0,50" Click="goButton_Click">GO!</Button>
        <ProgressBar Name="progressBar" Width="300" Height="30" />
    </StackPanel>

        <Label VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="100" Content="SHOWTHIS" Panel.ZIndex="1"/>
</Grid>

如果我理解得很好,那么在这种情况下,用于可见性的 Style Datatriggers 可能会很有用 数据模板的每个元素的示例代码:

<Image>
    <Image.Style>
        <Style TargetType="{x:Type Image}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsSending}" Value="True">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding IsSending}" Value="False">
                    <Setter Property="Visibility" Value="Visible"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>              
于 2013-01-10T16:06:54.493 回答