我正在根据Margaret Parsons 文章创建 DataGrid 角度标题样式。现在它看起来像这样:
<Style x:Key="DataGridColumnHeaderAngle"
TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid x:Name="HeaderGrid" ShowGridLines="True"
Width="30">
<Rectangle Name="HeaderRect" Fill="Azure" Stroke="Black"
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}">
<Rectangle.RenderTransform>
<SkewTransform CenterX="0" AngleX="-60" AngleY="0"
CenterY="{Binding RelativeSource={RelativeSource TemplatedParent},
Path=ActualHeight }"/>
</Rectangle.RenderTransform>
</Rectangle>
<TextBlock Text="{TemplateBinding Content}"
Background="Aqua"
VerticalAlignment="Bottom" HorizontalAlignment="Left">
<TextBlock.LayoutTransform>
<RotateTransform Angle="-30"/>
</TextBlock.LayoutTransform>
<TextBlock.RenderTransform>
<TranslateTransform X="20"/>
</TextBlock.RenderTransform>
</TextBlock>
<!--ContentPresenter Content="{TemplateBinding Content}" Width="200"
VerticalAlignment="Bottom" HorizontalAlignment="Left">
<ContentPresenter.LayoutTransform>
<RotateTransform Angle="-30"/>
</ContentPresenter.LayoutTransform>
<ContentPresenter.RenderTransform>
<TranslateTransform X="18"/>
</ContentPresenter.RenderTransform>
</ContentPresenter-->
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ContentPresenter
被更改为彩色TextBlock
是为了看到它的边界。
我的问题:默认情况下,列宽等于标题文本宽度,因此单元格位置的使用不是最佳的。当我减小列 ( HeaderGrid
) 宽度(通过绑定/转换器或手动)时,标题文本宽度也会减小
有没有办法在不剪切标题文本的情况下减小列宽?