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
) の幅を (バインディング/コンバーターまたは手動で) 縮小すると、ヘッダー テキストの幅も縮小されます
ヘッダーのテキストをカットせずに列幅を減らす方法はありますか?