如何设置LongListSelector中DataTemplate的z-index?

6

我有一个长列表选择器,其中包含我添加的某些图片。我还更改了这个图像的边距,使得该图像向上或向下移动等等。 但是我想将此图像放在长列表选择器中另一张图像的前面。我尝试使用Canvas.Zindex,将其设置在网格级别、图像级别和长列表选择器的顶层级别。但它仍然不起作用。有人有想法吗?您可以在下面找到我的代码:

<phone:LongListSelector 

        x:Name="SouthLongListselector" 
        VerticalAlignment="Bottom"
        ItemsSource="{Binding Cards}"
        Canvas.ZIndex="{Binding Layer}"
        SelectionChanged="SouthLongListselector_SelectionChanged"   
        LayoutMode="Grid"
        GridCellSize="50,200" 
        Margin="0,0,0,-26"
        >

    <phone:LongListSelector.ItemTemplate >  
        <DataTemplate>
            <Grid
                Background="Transparent" 
                Margin="{Binding GridOffset}"
                Height="150"
                Width="110"                      
                >
                <!-- add image here-->
                <Image 
                        Source="{Binding Image}"
                        >
                </Image>

            </Grid>

        </DataTemplate>
    </phone:LongListSelector.ItemTemplate>                
</phone:LongListSelector>
1个回答

1

我只使用过WPF,但是xaml应该是一样的。

我没有看到你引用的Canvas,所以Canvas.ZIndex不起作用。我认为你想要做的是将列表的面板设置为画布,然后为列表中的项目设置Zindex。

<phone:LongListSelector.ItemsPanel>
    <ItemsPanelTemplate>
        <Canvas/>
    </ItemsPanelTemplate>
</phone:LongListSelector.ItemsPanel>
<phone:LongListSelector.ItemTemplate >  
        <DataTemplate>
            <Grid
                Canvas.ZIndex"{Binding Layer}"
                Background="Transparent" 
                Margin="{Binding GridOffset}"
                Height="150"
                Width="110"                      
                >
                <!-- add image here-->
                <Image 
                        Source="{Binding Image}"
                        >
                </Image>

            </Grid>

        </DataTemplate>
    </phone:LongListSelector.ItemTemplate>   

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接