TextWrapping无法在水平StackPanel上工作

Bru*_*oLM 0 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>
Run Code Online (Sandbox Code Playgroud)

我需要进行ProfileName文本换行,如果可能的话,我想让RelativeTime它正确浮动.

我该怎么做?

Hen*_*man 5

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

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