WPF Сетка данных Текст Многоточие Не работает - PullRequest
3 голосов
/ 18 августа 2010

У меня есть колонка с длинными комментариями пользователей.Я загружаю его, используя следующий код ...

<my:DataGridTextColumn Header="Message"
                       Binding="{Binding UserMessage, Mode=OneWay}" 
                       CanUserSort="True">
    <my:DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}"
               BasedOn="{StaticResource {x:Type TextBlock}}">
               <Setter Property="TextWrapping"
                       Value="NoWrap" />
               <Setter Property="TextTrimming"
                       Value="CharacterEllipsis"/>                                    
               <Setter Property="ToolTip"
                       Value="{Binding Path=UserMessage, Mode=OneWay}"/>
        </Style>
    </my:DataGridTextColumn.ElementStyle>
</my:DataGridTextColumn>

Но многоточие не будет работать.Столбец продолжает отображать длинный текст данных.Также, когда я явно устанавливаю ширину текстового блока на какое-то значение, многоточие работает нормально, но когда я изменяю размер моего столбца, он больше не будет отображать в нем текст.

Нет ли более простого способа сделать это?

Thx Vinit Sankhe.

Ответы [ 2 ]

5 голосов
/ 27 января 2012

Попробуйте установить ширину для ваших столбцов, которые нуждаются только в статической ширине. В этом столбце вы устанавливаете ширину "*"

<my:DataGridTextColumn Header="Message"
                       Binding="{Binding UserMessage, Mode=OneWay}" 
                       CanUserSort="True"
                       Width="*">
    <my:DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}"
               BasedOn="{StaticResource {x:Type TextBlock}}">
               <Setter Property="TextWrapping"
                       Value="NoWrap" />
               <Setter Property="TextTrimming"
                       Value="CharacterEllipsis"/>                                    
               <Setter Property="ToolTip"
                       Value="{Binding Path=UserMessage, Mode=OneWay}"/>
        </Style>
    </my:DataGridTextColumn.ElementStyle>
</my:DataGridTextColumn>

Я нашел твой вопрос, погуглив твой вопрос. Я взял ваш код и просто добавил ширину к своим столбцам (за исключением столбца «Заголовок») и смог правильно разместить многоточие. Я также добавил MinWidth только для того, чтобы убедиться, что при изменении размера окна столбец не сжимается до нуля.

0 голосов
/ 19 августа 2010

Посмотрите на эту статью .Это решение, которое вы ищете:

...