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 :

Acces a un control windows.Ressouces


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut Acces a un control windows.Ressouces
    Bonjour à tous !

    Je fais face à un probleme assez deroutant.

    probleme :

    J'ai redéfini un style pour un CalendarDayButton.

    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
     
     <Window.Resources>
     
            <Style x:Key="myStyleDayButtonCalendar" TargetType="{x:Type CalendarDayButton}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type CalendarDayButton}">
                            <Grid  Name="gridCalendar">
                                <ContentControl Margin="5,1,5,1" Content="{TemplateBinding Content}"/>
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
    </Window.Resources>
     
     <Grid x:Name="LayoutRoot" Background="White">
            <Calendar CalendarDayButtonStyle="{StaticResource myStyleDayButtonCalendar}" Name="myCalendar"  SelectedDatesChanged="Calendar_SelectedDatesChanged_1" />
     
        </Grid>
    jusqu'ici tout va bien. Mais lorsque j'essai d'acceder a mon control GRID dans le code behind. Impossible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      private void Calendar_SelectedDatesChanged_1(object sender, SelectionChangedEventArgs e)
            {
                Grid gridInTemplate = (Grid)myCalendar.Template.FindName("gridCalendar", myCalendar) as Grid;
            }
    Ma grid est toujours NULL

    j'ai alors rajouté un bouton pour voir le comportement sur un autre control.
    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
     
     <Window.Resources>
     <Style x:Key="myStyleButton" TargetType="{x:Type Button}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Grid  Name="myButton">
                                <Ellipse Fill="DarkBlue"></Ellipse>
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
    </Window.Resources>
     
     <Grid x:Name="LayoutRoot" Background="White">
            <Calendar CalendarDayButtonStyle="{StaticResource myStyleDayButtonCalendar}" Name="myCalendar"  SelectedDatesChanged="Calendar_SelectedDatesChanged_1" />
            <Button Style="{StaticResource myStyleButton}" Name="myButton2" Margin="92,99,518,338" Click="myButton2_Click_1"></Button>
        </Grid>
    Code Behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     private void myButton2_Click_1(object sender, RoutedEventArgs e)
            {
                Grid gridInTemplate = (Grid)myButton2.Template.FindName("myButton", myButton2);
            }
    Et ici ma Grid est non NULL

    Je comprends absolument pas pourquoi dans le cas de dayButtonCalendar le control grid est null. Pourtant il me semble avoir fait la meme chose.

    Si quelqu'un peut m'aider sur ce probleme. J'aimerais éviter un VisualTreeHelper.

    J'ai également essayé myCalendar.ApplyTemplate();



    Merci d'avance !

  2. #2
    Membre éprouvé
    Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 99
    Par défaut
    Salut,

    Je pense que le problème vient de ton TargetType="{x:Type CalendarDayButton}". Tu es sûr que ton contrôle est de se type ?
    Dans ton code on voit que tu utilises un composant Calendar mais on en sait pas plus sur ce qui se cache derrière.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut
    Salut !

    J'ai resolu mon probleme avec Visual Tree Helper ce que je voulais pas. Mais bon ... c'est une solution comme une autre en attendant de trouver.

    J'utilise un control calendar mais mon style est utilisé sur la propriete CalendarDayButtonStyle. Il est ducoup du bon type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <Calendar CalendarDayButtonStyle="{StaticResource myStyleDayButtonCalendar}" Name="myCalendar"  SelectedDatesChanged="Calendar_SelectedDatesChanged_1" />

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

Discussions similaires

  1. [Windows]accès base de registre windows
    Par Greg01 dans le forum API standards et tierces
    Réponses: 27
    Dernier message: 05/06/2007, 16h14
  2. Probleme d'accès a un control
    Par OjBarbare dans le forum MFC
    Réponses: 2
    Dernier message: 01/12/2005, 02h38
  3. Droit d'acces sur rep partagé Windows
    Par MrEddy dans le forum Réseau
    Réponses: 2
    Dernier message: 10/02/2004, 16h34
  4. Acces a un control depuis une autre classe
    Par schnito dans le forum MFC
    Réponses: 5
    Dernier message: 25/01/2004, 23h14
  5. [DOS] Accès au caractère Control-C
    Par balti dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 05/12/2003, 00h53

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