SL4 - DataGridRowGroupHeader中的TextTrimming

时间:2011-02-09 22:19:59

标签: silverlight expression-blend texttrimming

我正在我们的项目中自定义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中的文本不会修剪,看起来应该没问题。

提前致谢!

1 个答案:

答案 0 :(得分:1)

我得到了林一峰的回答。 RowGroupHeader固定为行的宽度。当DataGrid内容太长时,会出现水平滚动条,并且可以通过这种方式查看RowGroupHeaders。当列被冻结时,问题出现了。

因此,确实没有解决方案,但这就是为什么文本不会动态修剪的原因。可以在文本块上设置宽度以强制修剪,但这可能更适合包装。