none
Design datagrid framework 4.5 RRS feed

  • Discussion générale

  • Bonjour,

    J'ai récemment mis mon PC à jour avec le framework 4.5 ce qui modifie l'apparence de mes datagrids comme sur la capture :

    Cela rajoute un trait dans chacun de mes lignes ce qui est vite hideux.

    NOTE: j'avais d'abord remarqué ce soucis via un autre PC qui était sous W8 (et donc framework 4.5)

    Comment je pourrais corriger ça ?

    Merci,

    • Type modifié Aurel Bera lundi 7 janvier 2013 13:45 Discussion
    lundi 19 novembre 2012 18:46

Toutes les réponses

  • Bonjour

    Essayez de vérifier les propriétés de la cellule. 

    Sinon, on a besoin du code pour voir exactement les attributs du Datagrid\Cellules.

    Cordialement, 


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mercredi 21 novembre 2012 10:04
  • Bonjour,

    Voici mon code : (qui fonctionnait donc à la perfection avant l'update du framework)

    <DataGrid ItemsSource="{Binding Path=_Data, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False" Height="248" HorizontalAlignment="Left" Margin="12,182,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="513" CanUserReorderColumns="False" AlternatingRowBackground="#FFFFF0CE" AlternationCount="2" CanUserResizeRows="False" RowBackground="White" SelectionMode="Single" GridLinesVisibility="Horizontal" VerticalGridLinesBrush="#FFCBCBCB" FontFamily="Verdana" Background="White" RowDetailsVisibilityMode="Visible" BorderBrush="White">
                <DataGrid.Columns>
                    <DataGridTemplateColumn CanUserReorder="False" CanUserResize="False" Header="" IsReadOnly="True" Width="22">
                        <DataGridTemplateColumn.CellEditingTemplate>
                            <DataTemplate />
                        </DataGridTemplateColumn.CellEditingTemplate>
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <Image Source="{Binding imgsource}" />
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                    <DataGridTextColumn FontFamily="Verdana" Header="Pays" Width="400" Binding="{Binding NomPays}" IsReadOnly="True" />
                    <DataGridTextColumn Header="Div" CanUserResize="False" Width="30" Binding="{Binding NbDiv}" IsReadOnly="True" />
                    <DataGridCheckBoxColumn  CanUserReorder="False" CanUserSort="False" Binding="{Binding Path=Suppr, UpdateSourceTrigger=PropertyChanged}" CanUserResize="False" >
    
                        <DataGridCheckBoxColumn.CellStyle>
                            <Style TargetType="DataGridCell">
                                <EventSetter Event="CheckBox.Checked" Handler="OnChecked"/>
                                <Setter Property="VerticalAlignment" Value="Center" />
                                <Setter Property="Padding" Value="0,3,0,0"/>
                                <Style.Triggers>
                                    <Trigger Property="IsSelected" Value="True">
                                        <Setter Property="Background"  Value="Transparent" />
                                        <Setter Property="Foreground"  Value="Black" />
                                        <Setter Property="BorderBrush" Value="Transparent" />
                                    </Trigger>
                                    <Trigger Property="IsMouseOver" Value="False">
                                        <Setter Property="IsEditing" Value="False" />
                                    </Trigger>
                                    
                                    <Trigger Property="IsMouseOver" Value="True">  
                                        <Setter Property="IsEditing" Value="True" />
                                        <Setter Property="Cursor" Value="Hand"/>
                                        <Setter Property="Background" Value="Transparent" />
                                        <Setter Property="Foreground"  Value="Black" />
                                        <Setter Property="BorderBrush"  Value="Transparent" />
                                    </Trigger>
                                    </Style.Triggers>
                            </Style>
                        </DataGridCheckBoxColumn.CellStyle>
                    </DataGridCheckBoxColumn>
                </DataGrid.Columns>
                <DataGrid.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Setter Property="VerticalAlignment" Value="Center" />
                        <Style.Triggers>
                            <Trigger Property="IsSelected"
                            Value="True">
                                <Setter Property="Background"
                            Value="Transparent" />
                                <Setter Property="Foreground"
                            Value="Black" />
                                <Setter Property="BorderBrush"
                            Value="Transparent" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </DataGrid.CellStyle>
                <DataGrid.RowStyle>
                    <Style TargetType="DataGridRow">
                        <Style.Triggers>
                            <Trigger Property="IsSelected"
                            Value="True">
                                <Setter Property="Background"
                            Value="Transparent" />
                                <Setter Property="Foreground"
                            Value="Black" />
                                <Setter Property="BorderBrush"
                            Value="Transparent" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </DataGrid.RowStyle>
    
            </DataGrid>
            

    Merci

    mercredi 21 novembre 2012 12:19
  • Bonjour

    Si vous effacez <Setter Property="VerticalAlignment" Value="Center" /> dans    <DataGrid.CellStyle> ca s’affciche comme il faut.

     Je pense qu’il y a une problème avec ce qui e déjà défini pour   

     <DataGridCheckBoxColumn.CellStyle>

                            <Style TargetType="DataGridCell">

    Cordialement, 


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    jeudi 22 novembre 2012 14:11
  • Merci pour votre réponse,

    Le problème est également présent sur d'autres datagrid ou je n'ai pas de checkbox mais ou j'utilise les memes triggers.

    En enlevant la propriété vertical Alignement il est vrai que ça fonctionne mais du coup la présentation de mes datagrids en prend un sacré coup, ne serait-il pas possible de "cacher" cette ligne supplémentaire plutot ? (via un proprieté="XXX" Value="Transparent")

    Merci,

    jeudi 22 novembre 2012 22:35
  • J'ai constaté qu’on doit ajouter un style vide dans la définition des colonnes comme ça :

            <DataGridTextColumn FontFamily="Verdana" Header="Pays" Width="400" Binding="{Binding NomPays}" IsReadOnly="True" >

                        <DataGridTextColumn.CellStyle>

                            <Style></Style>

                        </DataGridTextColumn.CellStyle>

                    </DataGridTextColumn>

    Cordialement,


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 23 novembre 2012 09:54
  • Bonjour,

    Merci pour votre réponse, mais en faisant ainsi je perd les définitions sur mes cellules définies dessous (au niveau de la sélection). On retrouve les propriétés de base (avec le bleu et tout) quand on sélectionne la ligne (contrairement à ce qui est indiqué dans mes cell style).

    Peut etre on peut obliger le cell style à s'appliquer ?

    samedi 24 novembre 2012 13:02
  • Bonjour,

    Existe-t-il une solution intermédiaire ?

    Cordialement,

    mercredi 28 novembre 2012 23:12
  • Bonjour,

    J'arrive probablement un peu tard, mais j'ai récemment eu un problème similaire. Il venait de la propriété suivante :

    GridLinesVisibility="Horizontal"

    J'ai du définir cette propriété à "None" pour résoudre le problème.

    Si cela fait disparaitre la ligne noire séparant chaque DataGridRow, on doit pouvoir la retrouver sans trop de problème en définissant les propriétés suivantes dans la <DataGrid.RowStyle> :

    <Setter Property="BorderThickness" Value="0,0,0,1" />
    <Setter Property="BorderBrush" Value="Black" />

    Cdt,

    Julien L.


    jeudi 27 décembre 2012 14:53