如何在WPF中的ListBox上添加标签?

问题描述 投票:0回答:1

我目前在ListBox(代表一个精彩的Diaballik游戏)中有一个DockPanel,最后我希望能够在图片框中显示一个标签胜利!

enter image description here

<DockPanel>
    <ListBox DockPanel.Dock="Top" ItemsSource="{Binding Cases}"  SelectedItem="{Binding SelectedCase, Mode=TwoWay}" HorizontalAlignment="Center" VerticalAlignment="Top" SnapsToDevicePixels="True">

        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Columns="{Binding Size}"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>

        <ListBox.ItemContainerStyle>
            <Style TargetType="ListBoxItem">
                <Setter Property="Padding" Value="0"/>
            </Style>
        </ListBox.ItemContainerStyle>

        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid >
                    <Ellipse Fill="{Binding Color}" Width="50" Height="50" Visibility="{Binding HasPawn, Converter={StaticResource bool2visibility}}"/>                        
                    ...
                 </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

    <Label Content="VICTORY" />  <!-- How can this go over the list box ?  -->
</DockPanel>
c# wpf xaml listbox label
1个回答
1
投票

你可以做这样的事情(Grid的行为是这样的,它只会“叠加”彼此“顶部”的项目):

<DockPanel>
    <Grid DockPanel.Dock="Top">
        <ListBox ItemsSource="{Binding Cases}" SelectedItem="{Binding SelectedCase, Mode=TwoWay}" HorizontalAlignment="Center" VerticalAlignment="Top" SnapsToDevicePixels="True">

            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid Columns="{Binding Size}"/>
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>

            <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="Padding" Value="0"/>
                </Style>
            </ListBox.ItemContainerStyle>

            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid >
                        <Ellipse Fill="{Binding Color}" Width="50" Height="50" Visibility="{Binding HasPawn, Converter={StaticResource bool2visibility}}"/>                        
                        ...
                     </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

        <Label Content="VICTORY" HorizontalAlignment="Center" VerticalAlignment="Center" />  <!-- How can this go over the list box ?  -->
    </Grid>
</DockPanel>
© www.soinside.com 2019 - 2024. All rights reserved.