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 :

Background UserControl et Canvas


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut Background UserControl et Canvas
    Bonjour,

    je débute en WPF et j'ai un soucis tout bête mais qui me pourris la vie. J'ai développé un UC dans lequels j'ai utilisé un Canvas comme layout.

    Maintenant, j'aimerai que la background de mon Canvas se calque sur celui de mon UC (car j'utilise cet UC plusieurs fois avec des couleurs différente).
    Je pourrais créer une nouvelle propriété du style InnerBackground mais j'aimerai vraiment Binder le bg du Canvas sur celui de l'UC.

    Est-ce possible?

    PS : j'ai déja tenté Background="{Binding Path=Parent.Background}" et une variante avec "Source" sur le canvas.

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <UserControl .....>
      <Canvas x:Name="LayoutRoot" Background="?">
      </Canvas>
    </UserControl>

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Essaie de faire le Binding de la manière suivante :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <UserControl x:Name="MonUc" .....>
      <Canvas x:Name="LayoutRoot" Background="{Binding ElementName=MonUc, Path=Background}">
      </Canvas>
    </UserControl>

    ElementName te permet de te binder sur un contrôle que tu as nommé auparavant et Path, tu dois le savoir, te dirige vers la propriété qui t'intéresse.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    J'ai essayé et il semble qu'un ne puisse pas définir l'attribut x:Name sur un UC.


    PS: erreur de ma part, on peut. C'est le nom que j'avais donné qu'il ne voulait pas. Par contre le Binding ne marche toujours pas.

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    Je ne comprends pas très bien ?
    si ton Canvas est transparent, tu verras seulement le background de l'UC
    et si tu veux mettre un background sur le Canvas, il te reste qu'a le définir sur le canvas.

    je me trompe ?!

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    En fait j'ai essayé de mettre un background sur mon UC et un fond transparent sur mon canvas mais cela ne fonctionne pas.
    Le rendu ne me prend pas en compte le background de l'uc.

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut
    Ca marche bien chez moi :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <UserControl x:Class="UserControl1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="300" Height="300"
        Background="Blue">
        <Canvas Background="Transparent" x:Name="canvas" >
            <Button Name="Button1">Change couleur du canvas</Button>
        </Canvas>
    </UserControl>

    et pour changer la couleur aussi:

    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Partial Public Class UserControl1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
            canvas.Background = Brushes.Green
        End Sub
    End Class

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [API HTML5] canvas background transparent en webgl
    Par zulad dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/08/2013, 20h12
  2. [Débutant] Priorité d'affichage entre UserControl dans un canvas
    Par Gui4257 dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 27/07/2012, 23h40
  3. Background repeat dans un canvas
    Par Stalk3R dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 25/11/2011, 19h02
  4. Timage et Canvas??
    Par vanack dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/04/2007, 11h38
  5. Réponses: 2
    Dernier message: 17/05/2002, 20h37

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