2011-09-01 7 views
0

Je suis nouveau à WPF et de travailler sur une application comptable, Mon problème est si simple et pourtant je suis étonné que je ne peux pas trouver une solution simpliste pour cela, il va comme ceci:sur mesure Datagrid WPF

Je pour créer une grille de données dans laquelle seules les colonnes doivent avoir des bordures visibles. Je veux dire qu'il devrait ressembler à ceci:

| col1 | col2| col3| 

|  |  |  | 

|  |  |  | 

|-----|------|-----| 

Je l'ai fait tout ce que je pouvais faire, mais je réalisé ceci:

enter image description here

Je ne comprends pas pourquoi mes lignes verticales ne touchent pas la frontière .. .....

tis est le XAML J'utilise pour générer le DataGrid:

<DataGrid Grid.Row="1" AutoGenerateColumns="False" x:Name="dataGrid1" VerticalAlignment="Stretch" 
     CanUserReorderColumns="False" GridLinesVisibility="None" HorizontalGridLinesBrush="White" 
     VerticalGridLinesBrush="White" Background="Transparent" Foreground="White" CanUserResizeRows="False" 
     BorderBrush="White" BorderThickness="2" RowBackground="#FF008284" MinRowHeight="5" FontSize="14" 
     ItemsSource="{Binding }" Margin="8" SelectionMode="Single"> 
    <DataGrid.Resources> 
     <Style TargetType="{x:Type DataGridColumnHeader}"> 
      <Setter Property="VerticalContentAlignment" Value="Center" /> 
      <Setter Property="VerticalAlignment" Value="Stretch" /> 
      <Setter Property="Background" Value="#FF008284" /> 
      <Setter Property="Foreground" Value="White" /> 
      <Setter Property="Visibility" Value="Visible" /> 
      <Setter Property="Height" Value="40" /> 
      <Setter Property="HorizontalAlignment" Value="Stretch" /> 
      <Setter Property="HorizontalContentAlignment" Value="Center" /> 
      <Setter Property="BorderThickness" Value="1,1,1,1" /> 
      <Setter Property="BorderBrush" Value="White" /> 
     </Style> 
     <Style TargetType="{x:Type DataGridCell}"> 
      <Setter Property="BorderThickness" Value="1,0,1,0" /> 
      <Setter Property="BorderBrush" Value="White" /> 
      <Setter Property="TextBlock.TextAlignment" Value="Center" /> 
      <Setter Property="Height" Value="30" /> 
      <Setter Property="HorizontalContentAlignment" Value="Right" /> 
      <Setter Property="TextBlock.FontSize" Value="14" /> 
     </Style> 
    </DataGrid.Resources> 
    <DataGrid.Columns> 
     <DataGridTextColumn Width="120*" Header="Account Head" CanUserResize="False" CanUserReorder="False" 
       CanUserSort="False" Binding="{Binding Path=AC_NAME}" /> 
     <DataGridTextColumn Width="60*" Header="Category" CanUserResize="False" CanUserReorder="False" 
       CanUserSort="False" Binding="{Binding Path=AC_CATE}" FontSize="16" /> 
     <DataGridTextColumn Width="80*" Header="Debit" CanUserResize="False" CanUserReorder="False" CanUserSort="False" 
       Binding="{Binding Path=AC_TOT_DR}" FontSize="16" /> 
     <DataGridTextColumn Width="80*" Header="Credit" CanUserResize="False" CanUserReorder="False" CanUserSort="False" 
       Binding="{Binding Path=AC_TOT_CR}" FontSize="16" /> 
    </DataGrid.Columns> 
</DataGrid> 

Merci pour la considération ....

Répondre

0

Vous devez modifier le default Template du DataGrid car rien n'est créé en dessous de la dernière ligne à l'exception d'un ScrollBar horizontal.

+0

Alors dites-vous qu'il n'y a pas de moyen simple d'accomplir cette petite customisation de base ... n'est-ce pas un peu étrange ??, je veux dire je pense que ce devrait être un comportement assez commun ...... – Sudh

+0

Sudh: Oui, c'est exactement ce que je vous dis, et ce n'est pas la première fois qu'il y a quelque chose d'étrange à propos de WPF ... –