2010-10-12 9 views
0

J'ai un DataGrid contenant quelques DataGridTextColumn s et je voudrais appliquer un simple LayoutTransform aux cellules, mais pas l'en-tête. Le problème est, DataGridTextColumn n'offre pas LayoutTransform.Appliquer LayoutTransform à DataGridTextColumn

J'ai été en mesure d'appliquer LayoutTransform à un DataGridTemplateColumn, mais j'ai perdu beaucoup de fonctionnalités et je n'ai pas pu le reconstruire.

Mon échantillon jusqu'à présent était:

<DataGridTemplateColumn Header="Satz"> 
    <DataGridTemplateColumn.CellTemplate> 
    <DataTemplate> 
     <TextBlock Margin="3,0,4,1" Text="{Binding Satz}"> 
     <TextBlock.LayoutTransform> 
      <ScaleTransform ScaleX="1.4" ScaleY="1.4"/> 
     </TextBlock.LayoutTransform> 
     </TextBlock> 
    </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
    <DataGridTemplateColumn.CellEditingTemplate> 
    <DataTemplate> 
     <TextBox BorderThickness="0" Text="{Binding Satz, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"> 
     <TextBox.LayoutTransform> 
      <ScaleTransform ScaleX="1.4" ScaleY="1.4"/> 
     </TextBox.LayoutTransform> 
     </TextBox> 
    </DataTemplate> 
    </DataGridTemplateColumn.CellEditingTemplate> 
</DataGridTemplateColumn> 

Je suis à la recherche d'une des deux façons:
- soit à l'échelle DataGridTextColumn.
Ou, si c'est pas possible de
- changer le DataGridTemplateColumn il supporte donc tous les functionalty du DataGridTextColumn (tri, édition) et, le plus important, offre la même interface utilisateur (en ce moment le montage dans le TemplateColumn fonctionne différent de la colonne de texte).

Répondre

2

Que diriez-vous de mettre LayoutTransform dans un CellStyle?

<DataGrid x:Name="dg"> 
     <DataGrid.Resources> 
      <Style x:Key="myCellStyle" TargetType="DataGridCell"> 
       <Setter Property="LayoutTransform"> 
        <Setter.Value> 
         <ScaleTransform ScaleX="1.4" ScaleY="1.4"/> 
        </Setter.Value> 
       </Setter> 
      </Style> 
     </DataGrid.Resources> 
     <DataGrid.Columns> 
      <DataGridTextColumn CellStyle="{StaticResource myCellStyle}" Binding="{Binding Field}"/> 
     </DataGrid.Columns> 
    </DataGrid> 
+0

Woa, cool, enfin un exemple clair comment utiliser CellStyle. – Sam

+0

Mais en quelque sorte cela ne fonctionne pas pour moi, je reçois une exception "" n'est pas une valeur valide pour la propriété "CellStyle" (ma traduction de l'allemand). On dirait que la staticresource est en quelque sorte vide? – Sam

+1

Hmm ... je ne sais pas pourquoi vous obtenez cette erreur. Avez-vous copié le XAML ci-dessus tel quel ou l'avez-vous modifié? – ASanch