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] ListView et TextAlignment


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de Cyrilange
    Profil pro
    Inscrit en
    Février 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 268
    Par défaut [XAML] ListView et TextAlignment
    Comment aligner le texte à droite dans une colonne d'un ListView ?

    J'ai essayé plusieurs exemples que j'ai trouvé sur le net sans résultat. Mon texte est toujours aligné à gauche.

    Voici mon code :
    Code xml : 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
    31
    32
    33
     
    <ListView  ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" Height="559"  Margin="25,296,35,0" Name="ListViewLignes" VerticalAlignment="Top" BorderThickness="0" BorderBrush="{x:Null}" FontSize="10">
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                    </Style>
                </ListView.ItemContainerStyle>
     
                <ListView.Resources>
                    <ResourceDictionary>
                        <Style x:Key="hiddenStyle" TargetType="GridViewColumnHeader">
                            <Setter Property="Visibility" Value="Collapsed" />
                        </Style>
                                       </ResourceDictionary>
     
                </ListView.Resources>
     
                <ListView.View>
     
                    <GridView>
     
                        <GridViewColumn DisplayMemberBinding="{Binding quantite}" Width="60" >
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
     
    <TextBlock Text="{Binding quantite}" Margin="0"   TextAlignment ="Right" />
     
                                </DataTemplate> 
                            </GridViewColumn.CellTemplate> 
                        </GridViewColumn>
                    </GridView>
                </ListView.View>
            </ListView>

    Merci de votre aide.

  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,

    Avec la valeur 'Right' pour la propriété 'HorizontalContentAlignment', cela devrait fonctionner.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
              <Setter Property="HorizontalContentAlignment" Value="Right" />
            </Style>
          </ListView.ItemContainerStyle>
    Si tu utilises des DataTemplate pour tes cellules, il y aura peut-être quelque chose à modifier du côté de ces DataTemplate (à voir).

  3. #3
    Membre très actif
    Avatar de Cyrilange
    Profil pro
    Inscrit en
    Février 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 268
    Par défaut
    Cela fonctionne effectivement mais comment faire pour que cela ne s'applique pas à toutes les colonnes mais seulement à certaines colonnes ?

  4. #4
    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
    Dans ce cas il faut mettre la propriété à Stretch et jouer avec le CellTemplate des colonnes concernées.

    Exemple où les valeurs de la colonne 1 sont alignées sur la droite :
    Code xml : 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
        <ListView ... >
          <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
              <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            </Style>
          </ListView.ItemContainerStyle>
     
          <ListView.View>
            <GridView>
              <GridViewColumn Width="140" Header="Column 1" >
                <GridViewColumn.CellTemplate>
                  <DataTemplate>
                    <Label HorizontalContentAlignment="Right" Content="{Binding Valeur1}" />
                  </DataTemplate>
                </GridViewColumn.CellTemplate>
              </GridViewColumn>
              <GridViewColumn Width="140" Header="Column 2" DisplayMemberBinding="{Binding Valeur2}" />
            </GridView>
          </ListView.View>
     
        </ListView>

  5. #5
    Membre très actif
    Avatar de Cyrilange
    Profil pro
    Inscrit en
    Février 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 268
    Par défaut
    Non, cette fois-ci le code ne fonctionne pas pour moi. Le texte est toujours aligné à gauche. Le HorizontalContentAlignment du Label ne fait pas mieux que le TextAlignment du TextBlock.

    Voici mon code :
    Code XML : 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
     
    <ListView  ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" Height="559"  Margin="25,296,35,0" Name="ListViewLignes" VerticalAlignment="Top" BorderThickness="0" BorderBrush="{x:Null}" FontSize="10">
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                     </Style>
               </ListView.ItemContainerStyle>
     
                </ListView.Resources>
     
                <ListView.View>
     
                    <GridView>
                        <GridView.ColumnHeaderContainerStyle>
                            <Style>
                                <Setter Property="FrameworkElement.Visibility" Value="Collapsed"   />
                            </Style>
                        </GridView.ColumnHeaderContainerStyle>
     
                        <GridViewColumn DisplayMemberBinding="{Binding quantite}" Width="60" >
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <Label HorizontalContentAlignment="Right" Content="{Binding quantite}" />
                                 </DataTemplate> 
                            </GridViewColumn.CellTemplate> 
                        </GridViewColumn>
                     </GridView>
                </ListView.View>
            </ListView>

  6. #6
    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
    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DisplayMemberBinding="{Binding quantite}"
    n'est pas utile et prend la main devant le CellTemplate, d'où l'inefficacité du HorizontalContentAlignment.
    Il faut l'enlever lorsque tu utilises un CellTemplate et c'est dans ce dernier que tu fais le Binding (comme tu le fais déjà d'ailleurs).

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

Discussions similaires

  1. XAML Style Listview
    Par Tanou dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 28/02/2012, 11h12
  2. [XAML] afficher un screen d'une vidéo dans une ListView
    Par Monkey56 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 22/09/2010, 11h37
  3. [WPF/Listview] Comment développer rapidement en Xaml un Detailview ?
    Par jacpapac dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 05/12/2008, 13h58
  4. [XAML/ListView] Comment modifier le SelectedItem Background ?
    Par Jérem22 dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 04/09/2008, 13h40
  5. Réponses: 3
    Dernier message: 16/01/2008, 11h45

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