如何在列表选择器silverlight工具包中包装文本?

时间:2011-03-28 17:55:05

标签: windows-phone-7 silverlight-toolkit

这是我的XAML

 <toolkit:ListPicker.FullModeItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" Margin="16 21 0 20">
                            <Rectangle Width="43" Height="43"/>
                            <TextBlock Text="{Binding AccountDescription}" Margin="16 0 0 0" FontSize="43" FontFamily="{StaticResource PhoneFontFamilyLight}" TextWrapping="Wrap"/>
                        </StackPanel>
                    </DataTemplate>
                </toolkit:ListPicker.FullModeItemTemplate>

即使我添加了TextWrapping =“Wrap” 我的TextBlock没有换行 我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

尝试用StackPanel替换Grid(我没有编译器,从内存中键入,因此可能存在一些拼写错误):

<toolkit:ListPicker.FullModeItemTemplate>
  <DataTemplate>
    <Grid Margin="16 21 0 20">
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
      </Grid.ColumnDefinitions>

      <Rectangle Width="43" Height="43" Grid.Column="0" />
      <TextBlock Text="{Binding AccountDescription}" Margin="16 0 0 0" 
                 FontSize="43" FontFamily="{StaticResource PhoneFontFamilyLight}" 
                 TextWrapping="Wrap" Grid.Column="1" />
    </Grid>
  </DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>

此外,您可能希望使用预定义的theme resources,而不是对FontSizeMargin等内容进行硬编码。 Jeff Wilcox有一个blog post,有许多这样的UI设计最佳实践。

答案 1 :(得分:1)

只需从stackpanel中删除Orientation="Horizontal"