2011-02-09 6 views
0

私はこのプロジェクトでDataGridRowGroupHeaderをカスタマイズしています。私はトリミングするテキストを取得することができない以外はすべてうまく動作します。ここでSL4 - TextTrimming in 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をこのように表示することを意図しています。列がフリーズして問題が発生したときです。

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

関連する問題