J'ai une liste qui contient quelques contrôles, y compris un Expander
. Dans l'extenseur est une autre liste, que je veux superposer la liste externe. Voici simple repro:ZOrder d'Expander avec Canvas à l'intérieur de la liste
<Page.Resources>
<x:Array x:Key="array1" Type="sys:String">
<sys:String>item 1</sys:String>
<sys:String>item 2</sys:String>
<sys:String>item 3</sys:String>
</x:Array>
<DataTemplate x:Key="buttonTemplate">
<Button Content="{Binding}"/>
</DataTemplate>
<DataTemplate x:Key="expanderItem">
<StackPanel>
<Expander Header="Options">
<Canvas>
<StackPanel Panel.ZIndex="999" Background="Red">
<Label>A1</Label>
<Label>A2</Label>
<Label>A3</Label>
<Label>A4</Label>
</StackPanel>
</Canvas>
</Expander>
<Label BorderBrush="Black" BorderThickness="2" Content="{Binding}"/>
</StackPanel>
</DataTemplate>
</Page.Resources>
<Grid>
<ListBox ItemsSource="{StaticResource array1}" ItemTemplate="{StaticResource expanderItem}"/>
</Grid>
Lorsque le Expander
obtient ouvert, les étiquettes intérieures se rendaient au même niveau que l'étiquette de la même DataTemplate
et le contenu plus tard éléments dans la liste. J'ai essayé de déplacer le Panel.ZIndex
jusqu'au panneau sans changement.
Si j'ajoute le style suivant:
<Style TargetType="{x:Type Expander}">
<Style.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter Property="Panel.ZIndex" Value="999"/>
</Trigger>
</Style.Triggers>
</Style>
Il recouvrira correctement les éléments dans l'élément de liste SAME, mais encore Renders entremêlées avec le contenu de la liste des articles plus tard.
(Je soupçonne que c'est un problème de mise en page assez évident, mais je ne l'ai pas pu le trouver.)
Je ne suis pas tout à fait sûr de ce que vous voulez dire par indépendant de la mise en page. J'ai besoin de l'expandeur pour superposer d'autres éléments dans cette section de l'écran, mais positionné par rapport à l'emplacement de l'élément dans la liste ... est-ce logique? –
Oui, cela a du sens. (Je voulais simplement dire que lorsque l'expandeur est développé, cela n'affecte pas la mise en page, mais il apparaît superposé aux autres éléments, vous pouvez bien entendu affecter la mise en page et faire baisser les autres éléments). Que pensez-vous de l'idée du convertisseur? Cela semble-t-il plausible? –