我正在我们的项目中自定义DataGridRowGroupHeader。一切正常,除了我无法修剪文本。
这是风格:
<sdk:DataGrid.RowGroupHeaderStyles>
<Style TargetType="sdk:DataGridRowGroupHeader">
<Setter Property="Cursor" Value="Arrow" />
<Setter Property="IsTabStop" Value="False" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Height" Value="20"/>
<Setter Property="Margin" Value="18,0,20,0"/>
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="sdk:DataGridRowGroupHeader">
<Grid Name="Root"
Margin="{TemplateBinding Margin}"
Background="{TemplateBinding Background}"
HorizontalAlignment="Stretch"
>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CurrentStates">
<VisualState x:Name="Regular"/>
<VisualState x:Name="Current">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="FocusVisual" Storyboard.TargetProperty="Opacity" To="1" Duration="0" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border BorderBrush="Yellow" BorderThickness="1" Visibility="Visible">
<TextBlock x:Name="txbGroupingName"
Margin="4,0,0,0"
Text="{Binding Name}"
FontSize="13"
TextTrimming="WordEllipsis"
HorizontalAlignment="Left"
Style="{StaticResource OrangeBodyText}"
/>
</Border>
<Rectangle Name="FocusVisual"
Stroke="{StaticResource BorderFocusBrush}"
StrokeThickness="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsHitTestVisible="false"
Opacity="0" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</sdk:DataGrid.RowGroupHeaderStyles>
TextBlock txbGroupingName中的文本不会修剪,看起来应该没问题。
提前致谢!
答案 0 :(得分:1)
我得到了林一峰的回答。 RowGroupHeader固定为行的宽度。当DataGrid内容太长时,会出现水平滚动条,并且可以通过这种方式查看RowGroupHeaders。当列被冻结时,问题出现了。
因此,确实没有解决方案,但这就是为什么文本不会动态修剪的原因。可以在文本块上设置宽度以强制修剪,但这可能更适合包装。