SL4 - TextTrimming в DataGridRowGroupHeader - PullRequest
       11

SL4 - TextTrimming в DataGridRowGroupHeader

0 голосов
/ 10 февраля 2011

Я настраиваю 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 Ответ

1 голос
/ 12 февраля 2011

Я получил ответ от Ифунг Лин. RowGroupHeader фиксируется по ширине строки. Предполагается, что горизонтальная полоса прокрутки появляется, когда содержимое DataGrid слишком длинное, и RowGroupHeaders можно просматривать таким образом. Проблема возникает, когда столбцы заморожены.

Таким образом, на самом деле решения не существует, но это причина, по которой текст не будет обрезаться динамически. В текстовом блоке можно задать ширину для принудительной обрезки, но это, вероятно, будет лучше при переносе.

...