2011-02-09 2 views
0

Я настраиваю DataGridRowGroupHeader в нашем проекте. Все работает отлично, за исключением того, что я не могу заставить текст обрезать.SL4 - 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

У меня есть ответ от Yifung Lin. RowGroupHeader привязан к ширине строки. Предполагается, что горизонтальная полоса прокрутки появляется, когда содержимое DataGrid слишком велико, и RowGroupHeaders можно просмотреть таким образом. Когда столбцы заморожены, проблема возникает.

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

Смежные вопросы