将LayoutTransform应用于DataGridTextColumn

时间:2010-10-12 14:28:09

标签: wpf .net-4.0 datagrid layouttransform

我有一个DataGrid包含一些DataGridTextColumn,并希望对单元格应用简单的LayoutTransform,但不应用标题。

问题是,DataGridTextColumn不提供LayoutTransform

我能够将LayoutTransform应用于DataGridTemplateColumn,但我失去了很多功能,无法重新构建它。

到目前为止我的样本是:

<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>

我正在寻找两种方式之一:
- 要么缩放DataGridTextColumn 或者,如果那不可能 - 更改DataGridTemplateColumn以便它支持DataGridTextColumn的所有功能(排序,编辑),最重要的是,它提供相同的用户界面(现在模板列中的编辑工作与文本列不同)

1 个答案:

答案 0 :(得分:2)

如何将LayoutTransform放入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>