【发布时间】:2012-10-19 17:09:56
【问题描述】:
我正在创建基于Margaret Parsons article 的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) 宽度(通过绑定/转换器或手动)时,标题文本宽度也会减小
有没有办法在不剪切标题文本的情况下减小列宽?
【问题讨论】:
标签: .net wpf datagrid header angle