可以说我有一些XAML这样的:问题与TextBlock.ActualWidth在Silverlight 2.0
<StackPanel>
<TextBlock Text="Blah Blah Blah" />
</StackPanel>
在这种情况下,宽度为NaN,如我所料,因为它的增长与StackPanel中的大小和没有明确设置。
不幸的是,ActualWidth并没有给我我期望的结果。 ActualWidth不受StackPanel大小的限制。它被绑定到渲染文本的长度,即使该文本超过父级StackPanel的大小。例如,如果StackPanel.ActualWidth是400,并且我的文本大于400,那么TextBlock.ActualWidth可能是556(或其他)。在相同情况下的按钮不会这样。
这对我来说是个问题,因为我试图实现一个实现TrimmingText的附加行为(如果文本被裁剪,最后使用elipsis)。如果Width属性被明确设置,它会很好用,但是在更动态的情况下,我无法让它工作。
有什么想法?
布赖恩
是的,这是关于我能做的最好的。我的行为要求设置宽度属性。如果该行为的用户将TextBlock放入更改该宽度的容器中,则当容器大小更改为容器的ActualWidth时,他们将不得不修改Width属性。有点不高兴,但它有效。 – 2009-06-04 19:18:54