【问题标题】:WPF Data grid Text Ellipsis Not workingWPF数据网格文本省略号不起作用
【发布时间】:2011-03-31 09:59:16
【问题描述】:

我有一列包含长用户 cmets。我使用以下代码加载它...

<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>

但是省略号不起作用。该列继续显示数据的长文本。此外,当我将文本块的宽度显式设置为某个值时,省略号可以正常工作,但是当我调整列的大小时,它不会在其中显示更多文本。

是否有一种非常先进的方法可以做到这一点?

谢谢 维尼特·桑赫。

【问题讨论】:

    标签: .net wpf datagrid ellipsis


    【解决方案1】:

    尝试在只需要静态宽度的列上设置宽度。在此列上,您将宽度设置为“*”

    <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 以确保在调整窗口大小时该列不会被压扁。

    【讨论】:

      【解决方案2】:

      看看this article。它认为这是您正在寻找的解决方案:

      【讨论】:

        猜你喜欢
        • 2016-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-03
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多