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 :

Changer le background d'un border dans le code behind


Sujet :

Silverlight

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut Changer le background d'un border dans le code behind
    Bonjour,
    j'essaie de changer le backround dans le code behind mais je n'arrive pas.
    dans mon Xaml j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Border x:Name="myBorder" DataContext="{Binding myBorder}" CornerRadius="5,5,0,0" Background="{Binding Path=Background}"/>
    et dans le code behind j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Border myBorder = new Border();
    myBorder.Background = new SolidColorBrush(Colors.Red);
    Quelqu'un aura une piste? Merci

  2. #2
    Membre chevronné Avatar de blade159
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 226
    Par défaut
    Bonsoir,

    dans le fichier xaml, pourquoi utilisez-vous le DataContext puis le Binding du Background? Je pense que cela n'est pas nécessaire puisque vous allez redéfinir cette propriété dans le code behind.
    De plus, dans le code behind, vous redéfinissez un nouvel objet "border".

    Je vous propose de simplifier tout cela en faisant :


    • dans le fichier xaml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Border x:Name="myBorder" CornerRadius="5,5,0,0"/>
    • dans le code behind

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     Border myBorder = this.myBorder;
     myBorder.Background = new SolidColorBrush(Colors.Red);

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut
    Merci pour ta réponse mais il souligne "this.myBorder;"

    Message erreur :
    'ModuleTest.Test' ne contient pas une définition pour 'myBorder' et aucune méthode d'extension 'myBorder' acceptant un premier argument de type 'ModuleTest.Test' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante*?)
    Pour que je sois plus precis,, voici mon code Xaml :
    Code xaml : 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
     
    <UserControl.Resources>
               <ControlTemplate x:Key="HeaderContentControlTemplate" TargetType="telerik:HeaderedContentControl">
                   <Grid Margin="10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <Rectangle RadiusX="5" RadiusY="5" Grid.RowSpan="2" Fill="White">
                            <Rectangle.Effect>
                                <DropShadowEffect BlurRadius="6" ShadowDepth="2" Opacity="0.4"/>
                            </Rectangle.Effect>
                        </Rectangle>
                        <Border x:Name="myBorder" CornerRadius="5,5,0,0"/>
                        <ContentControl Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" Foreground="White" FontSize="24" Margin="6" />
                        <ContentPresenter Grid.Row="1" Margin="6"/>
                    </Grid>
                </ControlTemplate>
     </UserControl.Resources>

  4. #4
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    Je ne vois pas bien l'intéret de toutes ces décalarations.
    Un simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myBorder.BackGround="Red"
    dans ton code behind ne fait-il pas l'affaire ?

    Ou alors, quelque chose m'échappe ??

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut
    Citation Envoyé par SIC83 Voir le message
    Je ne vois pas bien l'intéret de toutes ces décalarations.
    Un simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myBorder.BackGround="Red"
    dans ton code behind ne fait-il pas l'affaire ?

    Ou alors, quelque chose m'échappe ??
    Il ne le reconnait pas vu qu'il est dans <UserControl.Resources> ou dans <ControlTemplate>

Discussions similaires

  1. [.net]Appeler une fonction située dans le code behind
    Par anto dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/05/2009, 13h05
  2. Comment changer d'utilisateur de la BD dans le code?
    Par riddick dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 06/05/2007, 10h16
  3. Réponses: 1
    Dernier message: 20/01/2007, 11h47
  4. Réponses: 6
    Dernier message: 09/01/2007, 14h12
  5. [C#] changer la valeur d'un datetimepicker dans le code
    Par cortex024 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 15/05/2006, 10h11

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