0

プロジェクトで 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 のテキストはトリミングされず、問題ないように見えます。

前もって感謝します!

4

1 に答える 1

1

Yifung Lin から回答がありました。RowGroupHeader は行の幅に固定されます。DataGrid コンテンツが長すぎる場合に水平スクロールバーが表示されるように意図されており、RowGroupHeaders はこの方法で表示できます。問題が発生するのは、列が凍結したときです。

したがって、実際には解決策はありませんが、これがテキストが動的にトリミングされない理由です。テキストブロックに幅を設定して強制的にトリミングすることもできますが、おそらく折り返しの方がうまくいくでしょう。

于 2011-02-11T21:32:07.203 に答える