将layouttransform应用于datagridtextcolumn
-
29-09-2019 - |
题
我有一个 DataGrid
包含一些 DataGridTextColumn
S并且想应用一个简单的 LayoutTransform
到细胞,但不是标题。
问题是, DataGridTextColumn
不提供 LayoutTransform
.
我能够申请 LayoutTransform
a 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>
不隶属于 StackOverflow