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

VB.NET Discussion :

Effets Visuels de Panels


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut Effets Visuels de Panels
    Salut All,

    Je cherche à faire un fondu ou un swap visuel de 2 panels de meme taille.
    J'ai vu differentes facon en utilisant l'opacity pour les forms, mais rien pour les panels.
    Une idée, un code, un lien serait cool

    Danyel.


    PS : je sais pas pourquoi, mais je sens un olsimare qui va me dire texto : tu connais l'heritage ?

  2. #2
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Bonjour.

    Evidemment, t'es en Framework 2.0 ... sinon ça serait trop simple !

    Bon, alors une idée, tu fais une form et tu encapsules dans cette form 2 autres forms qui contiennent tes panels.
    Et là, tu peux jouer sur opacity des form.

    Remarque : avec des usercontrols ça doit le faire aussi.

    Cdt.

  3. #3
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Merci olsimare, mais jouer avec plusieurs forms, c'est pas (peu) realisable dans mon projet actuel.
    En fait, il me faudrait juste l'option opacity pour les panels.
    Tu aurais pas ca dans tes tiroirs ?

  4. #4
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Re.

    Bon avec le usercontrol ça ne le fait pas ...

    J'ai tenté par dépit un SetLayeredWindowAttributes sur un panel au cas où mais fallait pas réver ... ça ne marche pas pour des controls enfants...

    Ah oui, j'ai aussi tenté un exemple avec des forms attachées via SetParent... et plouf plantage lors de la modification de Opacity des forms attachées !

    Donc mes 2 propositions ne marchent pas ...

    Conseil : Faut passer à WPF pour faire ça ...

    Pour finir, j'ai creusé de ce côté là pour voir comment l'opacity était gérée dans les system.windows.controls... sans trouver quoi que ce soit de "simple" à faire en 2.0.

    Pour jouer avec les forms, il y a surement une piste à creuser. J'ai pondu ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    Public MustInherit Class CLFWAddAttachedForm
     
        Private Declare Function SetParent Lib "user32" ( _
            ByVal hWndChild As IntPtr, _
            ByVal hWndNewParent As IntPtr) As Integer
        Public Sub New()
            InitializeComponent()
            Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
            Me.ShowInTaskbar = False
        End Sub
        Private Enum WIN32
    #Region "Window Extended Styles"
            WS_EX_DLGMODALFRAME = &H1
            WS_EX_NOPARENTNOTIFY = &H4
            WS_EX_TOPMOST = &H8
            WS_EX_ACCEPTFILES = &H10
            WS_EX_TRANSPARENT = &H20
            WS_EX_MDICHILD = &H40
            WS_EX_TOOLWINDOW = &H80
            WS_EX_NOACTIVATE = &H8000000
            WS_EX_WINDOWEDGE = &H100
            WS_EX_CLIENTEDGE = &H200
            WS_EX_CONTEXTHELP = &H400
            WS_EX_RIGHT = &H1000
            WS_EX_LEFT = &H0
            WS_EX_RTLREADING = &H2000
            WS_EX_LTRREADING = &H0
            WS_EX_LEFTSCROLLBAR = &H4000
            WS_EX_RIGHTSCROLLBAR = &H0
            WS_EX_CONTROLPARENT = &H10000
            WS_EX_STATICEDGE = &H20000
            WS_EX_APPWINDOW = &H40000
            WS_EX_OVERLAPPEDWINDOW = &H300
            WS_EX_PALETTEWINDOW = &H188
            WS_EX_LAYERED = &H80000
    #End Region
        End Enum
     
        Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
            Get
                Dim p As CreateParams = MyBase.CreateParams
                p.ExStyle = p.ExStyle Or (WIN32.WS_EX_NOACTIVATE Or WIN32.WS_EX_TOOLWINDOW Or WIN32.WS_EX_TOPMOST)
                p.Parent = IntPtr.Zero
                Return p
            End Get
        End Property
     
        Private Declare Function ShowWindow Lib "user32" ( _
            ByVal hWnd As IntPtr, _
            ByVal nCmdShow As Integer) As Integer
     
        Public _ParentForm As Form
        Public Sub Attach(ByVal IParentForm As Form)
            _ParentForm = IParentForm
            AddHandler _ParentForm.SizeChanged, AddressOf TrackParent
            AddHandler _ParentForm.Move, AddressOf TrackParent
            ShowWindow(MyBase.Handle, 1)
            TrackParent(Nothing, Nothing)
        End Sub
        Private Sub TrackParent(ByVal sender As Object, ByVal e As EventArgs)
            Me.Width = _ParentForm.ClientRectangle.Width
            Me.Height = _ParentForm.ClientRectangle.Height
            Me.Location = _ParentForm.PointToScreen(New Point(0, 0))
        End Sub
    End Class
    Tu peux créer des forms qui en hérite et voir ce que cela fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            Dim f As New AF1
            f.BackColor = Color.Lavender
            f.Attach(Me)
            f.Opacity = 1
            Dim f1 As New AF2
            f.BackColor = Color.Blue
            f1.Attach(Me)
            f1.Opacity = 0.5
    Nota : AF1 et AF2 hérite de CLFWAddAttachedForm.

    Evidemment c'est pas terrible quand on affiche les 2 form en même temps !
    Par contre pour un effet de fondu ça pourrait le faire.

    A voir.

    Cdt.

  5. #5
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Arf pas encourageant tout cela, mon cher !!!
    Ca fait 2 bonnes heures que je traine sur codeproject, mais j'ai aussi fait choux blanc.

    Ok pour WPF mais pas encore passe au 3.5
    (ni meme essaye en fait)

    Je continue de chercher car ca me semble vraiment invraissemblable de ne pas pouvoir faire un fondu/fading sur un simple panel ...

  6. #6
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Re re.

    Rejette un coup d'une sur le post précédent car j'ai une peu merdé sur le coup ...

    Cdt.

  7. #7
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Je te remercie olsimare, mais tu as pas dû bien lire ma premiere reponse.

    Citation Envoyé par Danyel Voir le message
    Merci olsimare, mais jouer avec plusieurs forms, c'est pas (peu) realisable dans mon projet actuel.
    J'avais entre-apercu l'utilisation des librairies xp sur divers codes trouves ici-là.
    Mais je ne pense pas que ca soit utilisable pour les panels.

  8. #8
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Bonjour.

    Insoluble donc ...

    Sinon, au lieu de form dans le code précédant, ça marche aussi avec des usercontrol !

    A+

  9. #9
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Citation Envoyé par olsimare Voir le message
    Sinon, au lieu de form dans le code précédant, ça marche aussi avec des usercontrol
    J'etais sûr que tu dirais ca
    Je vais voir pour essayer pour les panels.

Discussions similaires

  1. [C#]Enlever l'effet visuel du focus
    Par Odulo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 24/07/2007, 09h21
  2. [Interface utilisateurs] Effet visuel non immédiat
    Par femtosa dans le forum Delphi
    Réponses: 5
    Dernier message: 18/04/2007, 16h47
  3. JPanel effet visuel
    Par L4BiN dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 23/03/2007, 10h06
  4. Effet visuel de Contenu dynamique
    Par kolib dans le forum ASP
    Réponses: 7
    Dernier message: 12/09/2005, 08h37

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