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 Forms Discussion :

Transparence d'un control deplaçable


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Par défaut Transparence d'un control deplaçable
    Bonjour à vous et merci d'avance à ceux qui pourront m'aider,

    Dans mon application en cours de développement, j'ai un control personnel (dérivé de UserControl). Ce control est transparent et il est possible de le déplacer dans le panel qui le contient (le panel ayant une image de fond).Mais lorsque je le déplace il ne s'affiche pas correctement avec des trainées temporaires saccadée ou bien des scintillements. Je pense que ces imperfections sont dues au temps de calcul de la transparence.
    J'ai appliqués les styles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint, true);
                SetStyle(ControlStyles.Opaque, false);
    Mais ça ne change rien....

    Je ne pense pas qu'il y ait de solution à ce problème si ce n'est bloquer la transparence lorsque je déplace le control et lui rendre sa transparence une fois le déplacement terminé. Existe-t-il une autre solution me permettant de garder cette transparence durant le déplacement tout en assurant un affichage fluide ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    c'est pas forcement le temps de calcul de la transparence

    cela peut aussi etre lié à d'autres evenements qui seraient mis en cause durant le déplacement (genre des delegates qui font des choses sur le déplacement)
    (ou bien la "lourdeur" du UserControl....

    Pour remedier à ce "problème", la solution pourrait etre d'avoir un rendu "degradé" quand tu déplaces ton controle.. (par exemple, dans le OnPaint de ton userControl, tu pourrais ne faire que le rectangle externe lors d'un déplacement

    The Monz, Toulouse

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    salut

    c'est pas forcement le temps de calcul de la transparence

    cela peut aussi etre lié à d'autres evenements qui seraient mis en cause durant le déplacement (genre des delegates qui font des choses sur le déplacement)
    (ou bien la "lourdeur" du UserControl....
    J'ai essayé avec juste un UserControl transparent qui dessine juste un rectangle rouge (son contour) et qui se déplace à l'intérieur d'un panel qui a une image de fond et il y a du scintillement...

    Citation Envoyé par theMonz31 Voir le message
    Pour remedier à ce "problème", la solution pourrait etre d'avoir un rendu "degradé" quand tu déplaces ton controle.. (par exemple, dans le OnPaint de ton userControl, tu pourrais ne faire que le rectangle externe lors d'un déplacement
    Cette solution me conviendrait mais le rectangle externe ne doit pas être transparent alors...

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    ok

    Normalement, la transparence d'un control est géré par rapport au fond d'écran de la forme... si tu as une image en fond d'écran de ta form ou se trouve le controle à déplacer, cela peut-etre "assez" couteux pour le framework qui va devoir gérer cela

    Maintenant, si ta forme qui possède tout le monde est d'une couleur unie, il peut y avoir un espoir que cela se passe plus rapidemment

    Tu peux toujours également utiliser la propriété DoubleBuffer du Form de base

    The Monz, Toulouse

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    ok

    Normalement, la transparence d'un control est géré par rapport au fond d'écran de la forme... si tu as une image en fond d'écran de ta form ou se trouve le controle à déplacer, cela peut-etre "assez" couteux pour le framework qui va devoir gérer cela
    La transparence d'un control est gérée par rapport au fond du conteneur qui contient le control (dans mon cas ce n'est pas une form mais un panel, un control donc). C'est l'image de fond de ce panel qui apparait dans mon control mobile.

    Citation Envoyé par theMonz31 Voir le message
    Maintenant, si ta forme qui possède tout le monde est d'une couleur unie, il peut y avoir un espoir que cela se passe plus rapidemment
    Oui c'est sûr mais ce n'est pas ce que je veux...

    Citation Envoyé par theMonz31 Voir le message

    Tu peux toujours également utiliser la propriété DoubleBuffer du Form de base
    ça ne change rien et c'est normal.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Sinon tu peux invalider le contrôle et la zone ou il a été déplacé, pour forcer un Paint sur cette zone

Discussions similaires

  1. [XL-2007] png et jpeg avec transparence dans un control image
    Par patricktoulon dans le forum Contribuez
    Réponses: 0
    Dernier message: 21/10/2012, 22h16
  2. [Débutant] Augmenter la transparence d'un control
    Par F.Saad dans le forum Windows Forms
    Réponses: 18
    Dernier message: 04/08/2009, 18h35
  3. [SWT] control transparent
    Par miel_pops dans le forum SWT/JFace
    Réponses: 5
    Dernier message: 20/09/2006, 11h03
  4. [C#] Controle transparent
    Par Nico28 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 11/04/2006, 16h53
  5. [Win32] Transparence d'un Edit Control
    Par bigbang dans le forum MFC
    Réponses: 20
    Dernier message: 04/02/2005, 08h22

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