2011-10-01 39 views
0

我有一个全景项TextWrapping不工作水平的StackPanel

<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浮动权。

我该怎么办?

+0

你不应该需要嵌套的StackPanels。始终尝试使用最简单的XAML,而不使用不必要的元素。 –

回答

5

有意义的是,在一个水平的StackPanel中没有明显的宽度约束来使Textblock换行。你可以添加这样的约束,但是这需要提供像素。

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