我有一个 DataGrid 包含一些 DataGridTextColumnS并且想应用一个简单的 LayoutTransform 到细胞,但不是标题。

问题是, DataGridTextColumn 不提供 LayoutTransform.

我能够申请 LayoutTransforma 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 (排序,编辑)并且最重要的是提供相同的用户界面(目前,TemplateColumn中的编辑与TextColumn不同)。

有帮助吗?

解决方案

将LayoutTransform放入细胞风格中怎么样?

    <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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top