我有一个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
的所有功能(排序,编辑),最重要的是,它提供相同的用户界面(现在模板列中的编辑工作与文本列不同)
答案 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>