TextWrapping无法在水平StackPanel上工作

时间:2011-10-01 14:24:12

标签: c# xaml windows-phone-7

我有一个全景项目

<controls:PanoramaItem Header="Stream" Margin="0,-16,0,0">
    <ListBox Margin="0,-16,0,0" ItemsSource="{Binding Items}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Margin="6,0,0,10">
                    <StackPanel Margin="6,0,0,10" Orientation="Horizontal">
                        <Image Source="{Binding ProfileImage}"
                               VerticalAlignment="Top"
                               Margin="0,4,0,0"
                               Width="48" Height="48"
                        />
<!-- This doesn't work -->
                        <TextBlock Text="{Binding ProfileName}"
                                   TextWrapping="Wrap"
                                   Style="{StaticResource PhoneTextTitle2Style}"/>
                        <TextBlock Text="{Binding RelativeTime}"
                                   Margin="2,10,0,2"
                                   Style="{StaticResource PhoneTextSubtleStyle}"/>
                    </StackPanel>

<!-- This works -->
                    <StackPanel Margin="0,-4,0,17" Orientation="Vertical">
                        <TextBlock Text="{Binding Content}"
                                   TextWrapping="Wrap"
                                   Style="{StaticResource PhoneTextNormalStyle}"/>
                    </StackPanel>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</controls:PanoramaItem>

我需要进行ProfileName文字换行,如果可能的话,我希望让RelativeTime向右浮动。

我该怎么做?

1 个答案:

答案 0 :(得分:5)

有道理,在水平StackPanel中没有明显的宽度约束来使Textblock换行。您可以添加这样的约束,但这需要提供像素。

只是看看XAML我想你可能想要一个有3列的Grid,而不是StackPanel。