2010-05-03 3 views
0

Y a-t-il un moyen de faire apparaître quelque chose au-dessus de la partie contextuelle d'une zone de liste déroulante? Panel.ZIndex ne semble pas aider - la partie popup est toujours affichée au-dessus de tout le reste! Par exemple, si vous utilisez le code suivant, est-il possible de faire apparaître le bloc de texte au-dessus de la partie contextuelle de la liste déroulante lorsqu'elle est développée?WPF: Faire apparaître les choses au-dessus de la zone de liste déroulante développée

<Window x:Class="Zindex.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Zindex" Height="350" Width="525"> 
<Grid Name="LayoutRoot" ShowGridLines="True"> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 

    <ComboBox Width="100" Height="24" Grid.Row="0" VerticalAlignment="Bottom"> 
     <ComboBoxItem Content="A" /> 
     <ComboBoxItem Content="B" /> 
     <ComboBoxItem Content="C" /> 
     <ComboBoxItem Content="D" /> 
    </ComboBox> 

    <TextBlock Grid.Row="1" Width="300" TextWrapping="Wrap"> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed volutpat faucibus 
     luctus. Morbi at semper massa. Mauris bibendum, eros in aliquam ultrices, odio 
     purus dignissim sapien, non eleifend leo mi in nulla. Sed risus urna, 
     fringilla vitae pulvinar interdum, consectetur ac sapien. Pellentesque turpis 
     ante, pulvinar quis adipiscing ac, rutrum at purus. Integer ultricies pulvinar 
     consequat. 
    </TextBlock> 
</Grid> 

+1

Pourquoi avez-vous besoin de cela? Si vous partagiez la raison peut-être il pourrait y avoir une meilleure façon de le résoudre. – wpfwannabe

+0

Lorsque je veux afficher des messages dans mon application, j'utilise une boîte de dialogue personnalisée au lieu de MessageBox. Cette boîte de dialogue personnalisée n'est pas une fenêtre mais un contrôle utilisateur superposé à tout le reste. J'ai basé ma conception/code sur cet article: http://www.codeproject.com/KB/WPF/wpfmodaldialog.aspx Le problème est que tandis que la boîte de dialogue est superposée sur tout, si la liste déroulante est développée, elle sera en haut de la boîte de dialogue! Cela se produit si un utilisateur de mon application sélectionne quelque chose dans une zone de liste déroulante et que cela peut potentiellement être mauvais. Ensuite, je vais montrer une boîte de dialogue où l'utilisateur doit confirmer l'opération. – haagel

Répondre

0

Vous devez utiliser une couche Adorner. Celles-ci sont au-dessus de tout et peuvent être configurées pour un rendu relatif à un contrôle ou à la fenêtre dans son ensemble.

Questions connexes