2010-10-07 5 views
1

J'ai deux zones de liste qui sont très proches, une en haut et une en bas. Est-il possible d'avoir un des éléments de la liste déroulante dans la liste déroulante supérieure chevauche la liste ci-dessous?Overlap ListBox Items

+0

Pourquoi voudriez-vous jamais faire cela? Si vous voulez vraiment, voici un indice: les marges négatives ... –

+0

@Thomas Je crois qu'il veut pousser l'élément template en dehors de la portée ListBox, ne pas pousser le ListBox lui-même sur l'autre ListBox. Définir le modèle sur l'élément à des marges négatives forcerait tous les éléments basés sur des modèles à utiliser cette marge étrange, pas seulement la dernière. Je suppose que vous pouvez appliquer un seul modèle au dernier élément. De toute façon, aucune idée de pourquoi vous voudriez faire cela. –

Répondre

1

Vous voulez dire, comme ça? Si oui, une marge supérieure négative est la réponse:

<DockPanel> 
    <DockPanel.Resources> 
     <Style x:Key="{x:Type Button}" 
       TargetType="Button"> 
      <Setter Property="Width" 
        Value="50" /> 
     </Style> 
    </DockPanel.Resources> 
    <ListBox DockPanel.Dock="Top"> 
     <ListBoxItem> 
      <Button>Foo</Button> 
     </ListBoxItem> 
     <ListBoxItem> 
      <Button>Bar</Button> 
     </ListBoxItem> 
     <ListBoxItem> 
      <Button>Baz</Button> 
     </ListBoxItem> 
     <ListBoxItem> 
      <Button>Bat</Button> 
     </ListBoxItem> 
    </ListBox> 
    <ListBox DockPanel.Dock="Top" Margin="0, -10, 0, 0"> 
     <ListBoxItem> 
      <Button>Foo</Button> 
     </ListBoxItem> 
     <ListBoxItem> 
      <Button>Bar</Button> 
     </ListBoxItem> 
     <ListBoxItem> 
      <Button>Baz</Button> 
     </ListBoxItem> 
     <ListBoxItem> 
      <Button>Bat</Button> 
     </ListBoxItem> 
    </ListBox> 

    <TextBlock /> 
</DockPanel>