Partage
  • Partager sur Facebook
  • Partager sur Twitter

[WPF] Superposer des éléments

Un control par dessus un dockpanel

    2 juillet 2021 à 11:33:18

    Bonjour,
    Je suis entrain de faire un système de notification qui devait apparaître par dessus tous les controles sans les modifiers. Ce qui n'est pas le cas pour le moment. (Je ne suis pas un craque en UI ^^ vous allez le remarquer)

    J'ai un List qui contient les notifications (NotificationMessages). Elles sont affichées pendant 10 secondes. Tout cela fonctionne bien sans problème. Elles se remplacenet entre elles dans l'ordre, pas de problèmes. 

    Le problème est donc l'affichage. J'ai fait un ItemsControl qui affiche donc ma classe FloatingNotificationsous forme de control. Mais les controlent ne se superposent pas et c'est ce que je désirerai faire. Voilà donc mon xaml : 

        <Canvas Visibility="{Binding IsVisible, Converter={wpf:BoolToVisibilityConverter}}" Height="50"
                Margin="{Binding MarginThickness}" Background="Blue" DockPanel.ZIndex="{Binding QueueIndex}">
            <TextBlock Text="{Binding Title}" Canvas.Top="10" Canvas.Left="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
            <TextBlock Text="{Binding Text}" Canvas.Top="25" Canvas.Left="5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
        </Canvas>

    Je me suis dis qu'avec un Canvas la position devait être relative. Ce n'est pas le cas. Maintenant je vais vous montrez comment j'affiche ces notifications, le problèmes vient peut-être d'ici : 

    <DockPanel Background="{DynamicResource WindowBackground}">
                <Button Content="Test notif" Command="{Binding TestNotifCommand}"></Button>
                <ItemsControl ItemsSource="{Binding NotificationMessages}" DockPanel.Dock="Top" Panel.ZIndex="0">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <ContentControl Content="{Binding Converter={concept:ConceptElementToViewConverter Subject={x:Static MessageSubject}}}" />
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>

    S'il manque des informations n'hésitez pas à me le dire. Merci de m'avoir lu jusqu'ici.

    Bonne journée et merci. ;) 

    • Partager sur Facebook
    • Partager sur Twitter
      5 juillet 2021 à 10:15:14

      Meric pour ta réponde. J'utilise donc des popup mais ce n'est pas le premier ajouter qui est sur le dessus mais le dernier. Quelqu'un a une idée pour inverser cela ?
      • Partager sur Facebook
      • Partager sur Twitter

      [WPF] Superposer des éléments

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown