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 :

WPF; ItemsControl ; Autosize


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut WPF; ItemsControl ; Autosize
    Bonjour,

    Voila le probleme :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     < Grid...>
       .....
    
           <ItemsControl  ItemsSource="{Binding Plages}"  ItemTemplate="{StaticResource PlagesDataTemplate}" x:Name="listBox" >
                              
                               <ItemsControl.ItemsPanel>
                                 <ItemsPanelTemplate>
                                   <Canvas/>
                                 </ItemsPanelTemplate>
                               </ItemsControl.ItemsPanel>
    
                             
                               <ItemsControl.ItemContainerStyle>
                                 <Style>
                                   <Setter Property="Canvas.Left" >
                                     <Setter.Value>
                                       <MultiBinding Converter="{StaticResource leftConverter}">
                                         <Binding ElementName="GContner" Path="Width"/>
                                          ....
                                          ....
    
                                       </MultiBinding>
                                     </Setter.Value>
                                   </Setter>
                                 </Style>
                               </ItemsControl.ItemContainerStyle>
                             
                             </ItemsControl>
       .....
     </Grid>
    <Canvas/> : Pour pouvoir d'afficher les éléments suivant des coordonnées et non pas par simple empilement.

    Le problème s'est quand j’affiche les éléments et que la largeur dépasse le Width du ItemsControl, ce dernier se redimensionne.
    - Quelqu’un aurait une idée pour mettre le Auto size à false ?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Tu as essayé en définissant une taille fixe pour ton ItemsControl ?

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut
    Citation Envoyé par Thomas Lebrun
    Tu as essayé en définissant une taille fixe pour ton ItemsControl ?
    je peut pas le faire car c'est un custom control.

    a l'initialisation du control je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            public Window1()
            {
                InitializeComponent();
     
                MyViewer.Width = 300;
                MyViewer.Height = 30;
                ....

  4. #4
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut
    Voila le debut du code :

    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
                  ...... 
                  <ControlTemplate TargetType="{x:Type local:CC_Metric}">
                        <Border  Name="Borderb" 
                                 Width="{Binding Width, RelativeSource={RelativeSource TemplatedParent}}"
                                 Height="{Binding Height, RelativeSource={RelativeSource TemplatedParent}}"
                                 Background="{TemplateBinding Background}" 
                                 BorderBrush="{TemplateBinding BorderBrush}" 
                                 BorderThickness="{TemplateBinding BorderThickness}"
                         >
     
                              <Grid Name="GContner"
                                  Width="{Binding ElementName=Borderb, Path=Width}" 
                                  Height="{Binding ElementName=Borderb, Path=Height}" 
                                  DataContext ="{Binding Path=Metric, RelativeSource={RelativeSource TemplatedParent}}"
                           >
     
                           <ItemsControl  ItemsSource="{Binding Plages}" ItemTemplate="{StaticResource PlagesDataTemplate}" x:Name="listBox" >
                              ......
                              .......
                             </ItemsControl>

    - le Width de la grille est binder avec le Width du controle
    - le ItemsControl prend toute la surface .
    si les elements du ItemsControl debordent => le Width du controle s'ajuste (Probleme)

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Je voulais dire: as-tu essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <ItemsControl  Width="300" ItemsSource="{Binding Plages}"  ItemTemplate="{StaticResource PlagesDataTemplate}" x:Name="listBox" >

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut
    J’avais compris,

    oui ça marche si je fixe le Width du ItemControl a 300.

    Mais je pourrais pas faire ça pacque c’est un « Custom Control » que je suis entrain de developper, et dans un Custom Control C’est les Utilisateur qui vont définir la taille du composant.

  7. #7
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    J'ai plus d'idées

    Désolé

  8. #8
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut
    Pas de problème Thomas.

    Je vais essayer de contourner le problème, on attendant que je trouve une solution.

Discussions similaires

  1. [WPF] Gestion du parent logique d'un item dans un ItemsControl
    Par Taenad dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 15/12/2017, 01h02
  2. [Débutant] WPF : InvalidOperationException : un ItemsControl est incohérent avec sa source items
    Par intibnin dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 27/03/2014, 10h21
  3. [C#][WPF] Accéder à un bouton dans le datatemplate d'un itemscontrole
    Par bensra dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 13/08/2011, 01h10
  4. [WPF] ItemsControl & Animation
    Par NeoKript dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 19/07/2011, 11h25
  5. [WPF] Problème de WrapPanel dans un ItemsControl
    Par Asarnil dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 03/03/2009, 09h03

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