【问题标题】:TextTrimming on TextBlock while Text bound by DynamicResource当文本由 DynamicResource 绑定时,TextBlock 上的 TextTrimming
【发布时间】:2014-03-30 21:46:52
【问题描述】:

我的 TextBlock 中有问题。 我在 String 类型的 ResourceDictionary 中有一个资源,它通过 DynamicResource 绑定到一个 TextBlock。

在我的 TextBlock 上,TextTrimming 处于活动状态,但在此“绑定”上,TextTrimming 不起作用。

这是框架中的错误还是我做错了?

这是我的示例:

   <Grid Grid.Column="1" HorizontalAlignment="Center" Height="60" >
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
<TextBlock Text="{DynamicResource PART_HeaderString}" VerticalAlignment="Center"  TextTrimming="CharacterEllipsis" Grid.Column="1"/>
                </Grid>

和我在资源中的字符串:

<sys:String x:Key="PART_HeaderString">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</sys:String>

有很多方法可以让它工作,但我想知道为什么它不能正常工作。

【问题讨论】:

    标签: c# wpf xaml textblock texttrimming


    【解决方案1】:

    您需要限制网格宽度才能应用TextTrimmingTextBlock 位于第二列,其宽度设置为 Auto,因此它将扩展到控件的实际宽度,即在您的情况下为 TextBlock。

    而是为第二列设置一些硬编码的宽度,例如 50 或将其设置为 *。这样所有 3 列共享相同的宽度。

    <Grid.ColumnDefinitions>
       <ColumnDefinition Width="*"/>
       <ColumnDefinition Width="50"/> <-- HERE
       <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    

    您会看到现在已应用 TextTrimming。

    【讨论】:

    • 我已经尝试过您的解决方案,它运行良好。谢谢!我认为“自动”意味着大小限制为 Grid.Width。一个可行的解决方案是将第 1 列和第 3 列设置为 Auto,将第二列设置为星号值。
    • 太棒了!!如果它解决了您的问题,请接受此作为答案。!!欢迎来到 SO。这是一个可以帮助您的链接。 How to accept an answer.
    猜你喜欢
    • 2014-01-01
    • 2013-01-15
    • 2015-05-24
    • 2012-05-18
    • 1970-01-01
    • 2011-10-24
    • 2011-10-31
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多