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 :

[Débutant] Augmenter la transparence d'un control


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Points : 160
    Points
    160
    Par défaut [Débutant] Augmenter la transparence d'un control
    Salut, j'ai besoin de réduire l'opacité de mon control (web browser)
    Contrairement a la fenêtre qui a un champ pour déterminer l'opacité, les controls n'en n'ont pas !!

    je suis sure que c'est possible (avantage de la programmation contrairement au web)
    mais faut savoir comment faire

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tu peux juste jouer sur le backcolor du controle je pense

    system.Drawing.color.fromargb(valeur transparence entre0 et 255,0,0,0)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Effectivement, le mieux est de passer par la méthode Color.FromArgb (msdn) et d'appliquer la couleur ainsi créée à ton composant.

    L'alpha va de 0 (transparant) à 255 (opaque).


    Si cela peut t'aider, voici un article de CodeProject permettant de rendre transparent tout et n'importe quoi : http://www.codeproject.com/KB/dotnet...r_Control.aspx
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    (avantage de la programmation contrairement au web)


    Je ne penses pas que ce soit trivial. En WinForms, il n'y a pas la possibilité de modifier l'opacité des composants sauf à modifier la méthode de rendu à l'écran (et donc créer des classes dérivées surchargée la méthode Paint). En WPF, chaque UIElement a une propriété Opacity mais il n'existe pas de WebBrowser.



    L'opacité d'une Form n'est pas juste une modification de l'opacité du background mais également de tous les composants qui la composent. Comme l'auteur de la question compare à ce type d'opacité, je ne suis pas sûr que la modification seulement du background conviennent.

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par Kaidan Voir le message
    En WPF, chaque UIElement a une propriété Opacity mais il n'existe pas de WebBrowser.
    on dirait que si, mais il n'apparait pas dans la toolbox par défaut
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    on dirait que si, mais il n'apparait pas dans la toolbox par défaut
    Le WebBrowser WPF fait partie du SP1 du framework 3.5.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    en meme temps faire du wpf sans le sp1 du fx3.5 c'est pas terrible ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    J'ai pas cherché lgtps, il était pas dans ma toolbox par défaut alors ...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Points : 160
    Points
    160
    Par défaut
    Comment on fait pour utiliser WPF au lieu de la toolbox standard.
    J'ai Visual C# 2008

  10. #10
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Il faut créer un projet WPF au lieu d'un projet Windows Forms.

    Mais ce n'est pas le sujet de ce topic.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  11. #11
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par Kaidan Voir le message
    En WinForms, il n'y a pas la possibilité de modifier l'opacité des composants
    C'est surtout que en WinForms, les contrôles sont généralement des wrappers vers des contrôles natifs de Windows qui par définition ne sont pas vraiment prévus pour la transparence. Et donc vu que le rendu est fait par les librairies de Windows (user32.dll) et pas directement par le code C# ça devient sport de le modifier (en WPF tout est dessiné par WPF lui même).

    Et en WPF il existe un WebBrowser (comme dit, dans le sp1) mais en fait on peut très bien l'utiliser sans le sp1 en passant par WindowsFormsHost afin d'y intégrer le WebBrowser des WinForms dans l'application WPF (d'ailleurs, c'est un peut comme ça qu'il est implémenté dans les dernières versions de WPF).
    Par la nature du contrôle (il s'agit tout simplement d'un wrapper vers le contrôle de rendu d'Internet Explorer) il n'est pas non plus fait pour la transparence et même en WinForms ça risque d'être sport (j'espère que la fin justifie les moyens).
    On peut le faire en pur C# par contre mais il faut une fenêtre sans bordure pour héberger le contrôle, appliquer la transparence à la fenêtre, et faire correspondre cette fenêtre à la place que devrais occuper le contrôle dans la fenêtre voulue ...

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Points : 160
    Points
    160
    Par défaut
    Dans tout les cas, j'ai trouvé beaucoup de difficulté avec la transparence, que j'utilise beaucoup d'ailler.

    J'ai 2 questions.
    Pourquoi est que je ne peut pas utiliser la méthode MakeTransparent
    on m'a dit que c'est parce que j'ai un compact framework mais je ne sais pas
    Comment pourais-je avoir un framework complet.

    - Je crois que je vais juste passer au WPF.
    Quelqun a de zoli tutos ?

  13. #13
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par F.Saad Voir le message
    Pourquoi est que je ne peut pas utiliser la méthode MakeTransparent
    tu veux dire Bitmap.MakeTransparent ? Si oui il faudra m'expliquer le lien entre la transparence d'un bitmap et celle d'un composant de WinForm

    Citation Envoyé par F.Saad Voir le message
    on m'a dit que c'est parce que j'ai un compact framework mais je ne sais pas
    Comment pourais-je avoir un framework complet.
    heu ? à tout hasard
    http://broux.developpez.com/articles...ter-en-dotnet/
    http://tahe.developpez.com/dotnet/csharp/
    Si tu ne sais pas ce qu'est le Compact Framework, c'est que tu dois avoir le Framework complet ...

    Sincèrement les WinForms c'est très pratique pour faire rapidement quelque chose de bien sans trop se creuser la tête. Par contre, les WinForms n'ont jamais été prévues pour faire de la transparence intensive : même si tu arrives à afficher quelque chose de transparent les performances seront vraiment lamentables, ça va clignoter de partout, etc etc.

    Citation Envoyé par F.Saad Voir le message
    - Je crois que je vais juste passer au WPF.
    Quelqun a de zoli tutos ?
    Avant que tu y penses, tu aura encore plus de mal à obtenir un WebBrowser transparent en WPF (mais vraiment beaucoup de mal). Mais quand il s'agit de faire un design évolué avec des animations et tout, WPF est largement plus puissant que les WinForms (il n'y a qu'à chercher "WPF" dans Google Images pour s'en rendre compte). De même, en cherchant WPF sur Google ou sur developpez, tu trouvera pas mal de choses bien.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par smyley Voir le message
    tu veux dire Bitmap.MakeTransparent ? Si oui il faudra m'expliquer le lien entre la transparence d'un bitmap et celle d'un composant de WinForm
    Car apres j'ai voulu faire en sorte que les pixels de couleur 255,0,255 (rose moche)
    soient transparents

  15. #15
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par F.Saad Voir le message
    Car apres j'ai voulu faire en sorte que les pixels de couleur 255,0,255 (rose moche)
    soient transparents
    C'est laid et old-school, mais la propriété c'est Form.TransparencyKey

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par smyley Voir le message
    C'est laid et old-school, mais la propriété c'est Form.TransparencyKey
    ouai et en plus ca montre le background au lieu des objet juste en dessous, tres logique microsoft !

  17. #17
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par F.Saad Voir le message
    ouai et en plus ca montre le background au lieu des objet juste en dessous, tres logique microsoft !
    trop facile la critique, TransparencyKey fait exactement ce pour quoi il a été prévu : remplacer les pixels d'une couleur donnée par ce qui se trouve derrière la fenêtre. Il n'a jamais été question de la transparence d'un contrôle en particulier. Faut lire l'aide de temps en temps
    Citation Envoyé par MSDN
    Quand la propriété TransparencyKey a la valeur Color, les zones du formulaire présentant le même BackColor sont affichées en transparence. Toute action de la souris, comme le clic, effectuée sur une zone transparente du formulaire est transférée vers les fenêtres situées en dessous de cette zone
    Sur Windows la transparence directement dans l'API n'a pas toujours été présente (ce qui est logique d'ailleurs). Le premier mouvement fait dans ce sens a été donc le TransparencyKey puis les Layered Windows qui permettent d'afficher une fenêtre avec une transparence définie pour chaque pixel (avec donc une composante alpha pour chacun d'entre eux). Cependant avec .NET la transparence et les effets 3D sont pleinement utilisables en WPF où là carrément les fenêtres sont rendues en utilisant l'accélération matérielle ce qui est le standard des interfaces "modernes" pour l'instant.

  18. #18
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Citation Envoyé par smyley Voir le message
    C'est surtout que en WinForms, les contrôles sont généralement des wrappers vers des contrôles natifs de Windows qui par définition ne sont pas vraiment prévus pour la transparence. Et donc vu que le rendu est fait par les librairies de Windows (user32.dll) et pas directement par le code C# ça devient sport de le modifier (en WPF tout est dessiné par WPF lui même).
    J'avais pas envie d'entrer dans les détails

  19. #19
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Smyley : Par contre, les WinForms n'ont jamais été prévues pour faire de la transparence intensive
    +1
    De plus, la transparence dépend de l'ordre de rafraîchissement des panneaux.
    A part pour faire un affichage "statique", c'est pratiquement inutilisable dès que les panneaux superposés peuvent se mettre à jour (et donc se repeindre) de façon asynchrone.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

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. Augmenter la largeur d'un control avec le form
    Par bobosh dans le forum Windows Forms
    Réponses: 1
    Dernier message: 23/03/2010, 17h01
  3. Transparence d'un control deplaçable
    Par JoSii dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/09/2007, 01h13
  4. [Débutant]Intégration composant dans un ActiveX Control
    Par Mandalore dans le forum Visual C++
    Réponses: 9
    Dernier message: 19/03/2007, 10h28
  5. [débutant][control]SS_BITMAP
    Par vvidal80 dans le forum MFC
    Réponses: 6
    Dernier message: 13/01/2004, 15h00

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