IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

[Control] Comment les mettre au premier plan ?


Sujet :

Windows Presentation Foundation

  1. #1
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Points : 1 057
    Points
    1 057
    Par défaut [Control] Comment les mettre au premier plan ?
    Bonjour,

    dans une de mes applications wpf, j'aurai besoin de mettre un de mes controles au premier plan (directement dans le code, sans passer par le designer).

    En WinForm, j'utilisais la propriété BringToFront, mais celle-ci n'a plus l'air d'exister dans WPF.

    Pourriez vous me dire comment faire ?

    Merci d'avance
    Cordialement

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Tu peux mettre la propriété TopMost à true, ca mettra ta fenêtre en avant-plan

    Sinon, il faut changer le ZIndex: http://www.dotnet-blog.com/index.php...toback-in-wpf/
    http://blogs.msdn.com/wpfsdk/archive...-Property.aspx

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    oui moi j'ai fait comme thomas, je la colle en topmost = true
    puis j'enleve le topmost = false et ca marche plutot bien
    j'en profite pour filer le focus a le fenetre aussi

    le topmost si je ne m'abuse ne fonctionne qu'avec les fenetres ....
    par sur les control, pour les control c'est le zindex qui faut remonter ou descendre

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par ikeas Voir le message
    pour les control c'est le zindex qui faut remonter ou descendre
    Oui, je confirme

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Je suis en train de mettre en place un drag and drop pour un jeu d'échec. J'ai suivi les conseils du deuxième site pour la modification du ZIndex, mais cela ne fonctionne pas, je ne sais pas pourquoi.

    Dans l'évènement du Drop, j'exécute la commande Canvas.SetZIndex(g,100); (où g est le Grid contenu dans le Canvas, récupéré via Grid g = (Grid)sender; ) et lorsque je le dépose, je le remet à 99. A noter que toutes les déclarations de mes Grids contiennent la propriété : Canvas.ZIndex="99".

    Est-ce que j'utilise le ZIndex correctement où il manque quelquechose?

    Merci

  6. #6
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    En fait dans ton cas (d'ailleurs faudrait pas déplacer ce post ?) il faut mettre une couleur à tes Grid. (par exemple Transparent) mais pas laisser la valeur par défaut qui est {x:Null}

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Une couleur était déjà placée (BlueViolet ne me demande pas la raison du choix je n'en sais rien ) je l'ai remplacée par Transparent mais le soucis est que quand je deplace une pièce, plus elle est déclarée tôt dans le code XAML, et moins je peux la déplacer car toutes les pièces ont un ZOrder supérieur pour toutes les suivantes.
    Le problème dans mon deplacement est que, lorsque je veux passer la pièce au dessus d'une autre, la pièce s'arrête de bouger en passant en dessous. Tandis que pour la dernière pièce déclarée, elle peut bouger au dessus de toutes les autres. Mon but est donc, lorsque je drop la pièce, de la mettre prioritaire (au premier plan) par rapport à toutes les autres.

    J'ai essayé de définir par défaut à la création des grid un ZOrder de base avec la propriété Canvas.ZIndex="int" en les numérotant de 01 à 32 (32pièces). Dans le code je fais un Canvas.setZIndex(g,(int)33) puis en relâchant remet à l'ancienne valeur (conservée dans une variable globale). Cela ne fonctionne pas

  8. #8
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    Citation Envoyé par totodof Voir le message
    Une couleur était déjà placée (BlueViolet ne me demande pas la raison du choix je n'en sais rien ) je l'ai remplacée par Transparent mais le soucis est que quand je deplace une pièce, plus elle est déclarée tôt dans le code XAML, et moins je peux la déplacer car toutes les pièces ont un ZOrder supérieur pour toutes les suivantes.
    Le problème dans mon deplacement est que, lorsque je veux passer la pièce au dessus d'une autre, la pièce s'arrête de bouger en passant en dessous. Tandis que pour la dernière pièce déclarée, elle peut bouger au dessus de toutes les autres. Mon but est donc, lorsque je drop la pièce, de la mettre prioritaire (au premier plan) par rapport à toutes les autres.
    Je t'ai répondu sur le post consacré à ton problème.

Discussions similaires

  1. Mettre au premier-plan (par VBA)
    Par SansSucre dans le forum IHM
    Réponses: 6
    Dernier message: 27/01/2018, 10h15
  2. mettre en premier plan un formulaire
    Par celiaaa dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/05/2007, 12h49
  3. Réponses: 1
    Dernier message: 22/05/2007, 16h03
  4. mettre en premier plan JPopupMenu??
    Par ricardvince dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 09/05/2006, 13h27
  5. [VBA] Mettre au premier plan par VBA?
    Par Caroline1 dans le forum Access
    Réponses: 9
    Dernier message: 02/05/2006, 22h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo