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

Silverlight Discussion :

[OutOfBrowser] Aero Glass Window comme WPF


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut [OutOfBrowser] Aero Glass Window comme WPF
    Bonjour.

    Ai-t-il possible d'obtenir une fenêtre transparente avec un effet Aero Glass en mode OutOfBrowser comme on peut obtenir en WPF?
    Si oui quel est la manip?
    Si vous ne voyez pas de quoi je parle, regardez le lien ci-dessous

    http://www.42spikes.com/post/Seesmic...ero-Glass.aspx

    Sinon pour ceux qui font du WPF, ce bout de code est génial

    Je n'ai pas tester à fond mais déjà ce code ne fonctionne pas sous Silverlight car il ne possède pas l'assembly System.Windows.Interop, dans sa version 4 tout du moins.

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Pour accéder AeroGlass il faut effectuer des DllImport pour que .NET puisse communiquer avec dwmapi.dll.

    Silverlight 4 ne peux effectuer ces appels directement. Seul les appels COM sont autorisés en mode OOB + elevated permissions.

    En creant un COM chargé de l'appel de dwmapi.dll et appelé depuis Silverlight, on pourrait donc logiquement appliquer à la fenêtre l'effet AeroGlass (à tester)

    Le seul hic reste l'installation du COM sur le poste client.

    Pour les contours arrondis tu peux les mettre en place en mode OOB + elevated permissions dans les propriétés du projet Silverlight (bouton Out-Of-Browser settings -> Required Elevated Trust.. -> Windows Style à BorderLess Round Corners.

  3. #3
    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
    Par défaut
    Citation Envoyé par Samuel Blanchard Voir le message
    Silverlight ne peux effectuer ces appels directement. Seul les appels COM sont autorisés en mode OOB + elevated permissions.
    Avec Silverlight 5, il est possible de faire du P/Invoke donc cela peut marcher: je testerais à l'occasion pour vous dire si j'ai réussi ou pas

  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
    Par défaut
    Bon, d'un autre côtré, on a pas de Handle de fenêtre avec Silverlight donc ça risque d'être compliqué

  5. #5
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Exact Thomas pour SL5 !

    Je pensais pour le Handle de fenetre que le COM pourrait se charger de le recuperer à partir du processus appelant (Silverlight). Mais c'est un peu du bricolage, pas sur que cela fonctionne et pas applicable au P/Invoke

  6. #6
    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
    Par défaut
    En fait, j'ai reussit à appeler, via P/Invoke, une méthode qui me donne le Handle de la fenêtre. Du coup, avec une adaptation, cela aurait pu marcher mais il faudrait pouvoir changer le fond de la fenêtre/du host de l'application Silverlight OOB et ça, je n'ai pas trouvé comment faire/si c'est possible...

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut
    J'y comprend pas grand chose la pas suffisamment de connaissance la dessus mais au moins vous avez l'air de bien vous amusez ^^.

  8. #8
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    J'y comprend pas grand chose la pas suffisamment de connaissance la dessus mais au moins vous avez l'air de bien vous amusez ^^.
    Si Thomas réussi, il va bien nous ecrire un petit article dessus nan ? ^^

    c'est quoi la méthode P/Invoke que tu as utilisé ?

    Du coup, avec une adaptation, cela aurait pu marcher mais il faudrait pouvoir changer le fond de la fenêtre/du host de l'application Silverlight OOB et ça, je n'ai pas trouvé comment faire/si c'est possible...
    Le fait d'appeler dwmapi.dll va peut être suffire à remplacer le OnPaint de la fenêtre de base, Si c'est le cas Bye bye le fond Blanc.

  9. #9
    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
    Par défaut
    Citation Envoyé par Samuel Blanchard Voir le message
    Si Thomas réussi, il va bien nous ecrire un petit article dessus nan ? ^^
    Ouais, y'a de l'idée :p

    c'est quoi la méthode P/Invoke que tu as utilisé ?
    Pour récupérer le handle ? GetForegroundWindow: http://www.pinvoke.net/default.aspx/...regroundwindow

    Le fait d'appeler dwmapi.dll va peut être suffire à remplacer le OnPaint de la fenêtre de base, Si c'est le cas Bye bye le fond Blanc.
    Pas réussit mais si cela te tente d'essayer, go: on fera l'article ensemble :p

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut
    Mince j'aurais bien aider aussi pas assez de connaissance à l'heure actuelle.
    Me reste plus qu'as attendre patiemment

  11. #11
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Pour récupérer le handle ? GetForegroundWindow: http://www.pinvoke.net/default.aspx/...regroundwindow
    Grace à Spy++, j'ai remarqué que la structure du mode OOB est la suivante (voir l'image jointe)

    Je pencherais donc plus pour un FindWindow en prenant le titre de l'application et en verifiant qu'elle contient bien une ChildWindow de ClassName "Microsoft Silverlight". C'est plus sécurisant que le GetForegroundWindow qui peut changer à tout moment et donc nous ferait transformer une Fenetre qui n'est pas la notre.

    De plus pour le fond blanc, si le changement via dwmapi.dll n'affecte pas le fameux fond blanc, on pourra toujours parcourir les fenetres enfants et virer leur fond.
    Images attachées Images attachées  

  12. #12
    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
    Par défaut
    Je regarderais ça à l'occasion et je vous tiendrais au courant

  13. #13
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Pareil, j'attends que la RCW de SL5 sorte

    En attendant une petite pub copain pour Thomas :

    http://www.digitbooks.fr/catal​ogue/...ne-lebrun.html

    C'est très bien, mangez-en !

  14. #14
    Invité de passage
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 1
    Par défaut
    Bonjour à tous.

    Je suis tombé sur ce poste et j'aimerais savoir si vous avez trouvé une solution depuis la sortie de silverlight 5.

    Merci.

Discussions similaires

  1. Encadrer un composant Windows comme Spy++
    Par Vivalzar dans le forum Windows
    Réponses: 14
    Dernier message: 22/10/2008, 09h47
  2. Comment obtenir les contours d'Aero Glass avec Delphi ?
    Par shell13010 dans le forum Débuter
    Réponses: 7
    Dernier message: 07/05/2008, 19h30
  3. Style Windows XP / WPF
    Par NewbiZ dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 05/11/2007, 03h22
  4. Réponses: 2
    Dernier message: 04/01/2007, 13h55

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