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 :

XAML Style => Griser des éléments.


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut XAML Style => Griser des éléments.
    Bonjour @ tous,

    J'ai une popup, et j'aimerais que lorsqu'elle se lance, le fond de la fenêtre se grise.
    Ca fonctionnait avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ElmtsADesactiver?.ForEach((a) => { a.IsEnabled = false; });
    Seulementk, j'ai ajouté pas mal de styles un peu partout (des transparents etc...) et ça ne se grise plus.
    J'ai essayé de mettre l'opacité, mais ça éclaircit au lieu de noircir.
    J'ai essayé de mettre un opacityMask, mais que que je fasse, ça ne change rien...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OpacityMask="White" // Rien
    OpacityMask="Black" // Rien
    Je ne dois pas bien comprendre comment ça fonctionne.

    J'ai bien essayé aussi de mettre un style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        <Style x:Key="frmBody" TargetType="{x:Type Control}">
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Background" Value="#FF000000"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    Mais c'est sur une frame, ça change bien le fond, mais pas celui des sous éléments. De plus, ça change juste le fond en noir, il n'y a pas d'effet "grisé".

    Avez vous une idée ?
    David.

  2. #2
    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
    le plus simple c'est de changer le style et d'ajouter un rectangle devant ^pendant le chargement avec un trigger sur le style
    apres fait des images pour voir l'effet que tu veux avoir ca sera plus simple a comprendre
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  3. #3
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Un rectangle devant ? Mais du coup, ma popup sera grisée aussi. 0_0

    Le concept actuel est que je passe les éléments à désactiver dynamiquement.
    Il y a le bandeau haut, le menu gauche et le corps de la fenêtre, en l’occurrence.
    J'ai pensé à mettre un style "grisé". Mais du coup, si un élément possède déjà un style, il est écrasé, non ?
    Et lorsque la popup se ferme, il faut le remettre.

    Je pensais plutôt m'orienter vers les effets bitmap dans le type brightness / contrast, mais je n'arrive pas à l'applique à des composants.

    Est ce que quelqu'un saurait me dire si c'est possible ? (si oui, comment ?)

    [Edit]
    J'ai malgré tout essayé de mettre un rectangle devant :
    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
     
     
        <Style x:Key="_pnlBottom" TargetType="{x:Type ContentControl}">
            <Setter Property="Template" Value="{DynamicResource ElmtGrey}"/>
        </Style>
        <ControlTemplate x:Key="ElmtGrey" TargetType="{x:Type ContentControl}">
            <Grid>
            <Rectangle Width="Auto" Height="Auto" x:Name="rectangle"></Rectangle>
                <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" 
                ContentTemplate="{TemplateBinding ContentTemplate}" RecognizesAccessKey="True" d:LayoutOverrides="Width, Height" x:Name="contentPresenter" 
                HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
            </Grid>
            <ControlTemplate.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Fill" TargetName="rectangle" Value="#FFCCCCCC"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    Mais en fait, mon élément est une frame qui contient des panels qui ont un background coloré, et eux ne sont pas impactés... Ca revient à faire un simple background général.
    David.

  4. #4
    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
    fait moi une image exemple je comprends pas la
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  5. #5
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    En fait, mon cas de figure est particulier mais le besoin est simple.

    Je peux faire "opacity" sur un control qui en contient d'autres (WrapPanel, Frame, ...). Ceci "éclaircit" la zone (même si on sait que c'est une transparence, mais comme le dessous est blanc...) ainsi que tous ses controls enfants.

    J'aimerais faire la même chose, mais avec un effet "Obscurcissant".

    Je sais qu'il existe des effets "Brightness" et "Contrast", mais ils n'ont l'air d'être possible que sur des images.
    Est ce que c'est possible sur un control ?
    David.

  6. #6
    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
    justement tu peux pas me faire une image ça simplifierait nettement la compréhension
    tu prend un logiciel d'image et tu colore

    les effets existent sur un control parent et s'appliquent sur tous les enfants ce qui est normal
    tu peux essayer avec le blur tu verra ça marche (avec blend c encore plus simple a verifier)

    après si tu veux un effet particulier tu peux te faire une classe d'effet avec une matrice
    tu peux trouver ça facilement sur le net ou regarder comment la classe d'effet blur est fait (c'est juste une matrice différente a utiliser)
    mais la question est ... que veux tu faire exactement lol
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

Discussions similaires

  1. Griser des éléments d'une JComboBox
    Par laurentze dans le forum Composants
    Réponses: 2
    Dernier message: 19/02/2010, 11h48
  2. modifier le style des éléments d'un datagrid
    Par pigeon11 dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/02/2009, 16h42
  3. [Xaml/C#:CustomControl] Comment accéder à des éléments du Template?
    Par SuprazZz dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 26/11/2008, 20h40
  4. Réponses: 1
    Dernier message: 17/10/2008, 13h11
  5. Les styles des éléments avant/après compilation
    Par Mysti¢ dans le forum wxPython
    Réponses: 2
    Dernier message: 14/06/2007, 17h07

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