TextBlock上的TextTrimming,而DynamicResource绑定文本

时间:2014-02-27 12:45:47

标签: c# wpf xaml textblock texttrimming

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

在我的TextBlock上有TextTrimming处于活动状态,但是在“Binding”上,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>

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

1 个答案:

答案 0 :(得分:1)

您需要约束要应用TextTrimming的网格宽度。 TextBlock位于第二列,其宽度设置为Auto ,因此它会扩展到控件的实际宽度,即您的情况下的TextBlock。

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

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

您将看到TextTrimming现在已应用。