如何在Windows Phone 8中包装ListPicker SelectedItem

时间:2014-09-05 10:31:26

标签: windows-phone-7 windows-phone-8

我正在使用Windows Phone工具包中的ListPicker。我的选项很长,所以我的ItemTemplate是,

<DataTemplate>
<TextBlock TextWrapping="Wrap"/>
</DataTemplate> 

现在,当我在扩展模式(少于5个选项)中选择一个冗长的选项(比如三行)时,它按预期工作正常,但是当我使用FullMode(超过5个项目)时,它没有包含在ListPicker中

更清楚的是,它在FullModePage中按预期包装,但它不在控件内。

 <toolkit:ListPicker  Margin="0"   MinHeight="70"  toolkit:TiltEffect.SuppressTilt="True"  Template="{StaticResource ListPickerControlCustomTemplate}"   HorizontalAlignment="Stretch" VerticalAlignment="Top" FontFamily="{StaticResource RegularFont}" 
    SelectionChanged="SharedAppsCategoryListPicker_OnSelectionChanged" Name="SharedAppsCategoryListPicker"
                        LayoutUpdated="SharedAppsCategoryListPicker_OnLayoutUpdated" >

            <toolkit:ListPicker.ItemTemplate>
            <DataTemplate>

                <Grid Margin="0,0,20,0">
                    <TextBlock TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="20,15,120,15" FontSize="20" Text="{Binding groupname}" Foreground="{StaticResource ListPickerForegroundColor}"></TextBlock>
                    <Rectangle Margin="20,10,0,-11"   Height="0.5"   HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Stroke="{StaticResource ListPickerDividerColor}"  StrokeThickness="0.5" />
                </Grid>
            </DataTemplate>
        </toolkit:ListPicker.ItemTemplate>

        <toolkit:ListPicker.FullModeItemTemplate>
            <DataTemplate>
                    <Grid Margin="0,0,20,0">
                        <TextBlock MaxWidth="250" Width="250" TextWrapping="Wrap" FontSize="20" Margin="0,0,120,0"  VerticalAlignment="Center" Text="{Binding groupname}" Foreground="{StaticResource ListPickerForegroundColor}" FontFamily="{StaticResource RegularFont}"></TextBlock>                           
                    </Grid>
                </DataTemplate>
        </toolkit:ListPicker.FullModeItemTemplate>

    </toolkit:ListPicker>

1 个答案:

答案 0 :(得分:2)

如果内容大于文本块的宽度,则需要为Textblock提供宽度,然后文本将被包装。

试试这个:

<DataTemplate>
<TextBlock TextWrapping="Wrap" width=200/>
</DataTemplate> 

编辑:

我已经这样实现了

XAML:

<toolkit:ListPicker  Margin="0"   MinHeight="70"  toolkit:TiltEffect.SuppressTilt="True"  HorizontalAlignment="Stretch" VerticalAlignment="Top" Name="SharedAppsCategoryListPicker" >
                    <toolkit:ListPicker.ItemTemplate>
                        <DataTemplate>
                            <Grid Margin="0,0,20,0">
                                <TextBlock Width="300" TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Stretch" Margin="20,15,120,15" FontSize="20" Text="{Binding}" ></TextBlock>
                            </Grid>
                        </DataTemplate>
                    </toolkit:ListPicker.ItemTemplate>

                    <toolkit:ListPicker.FullModeItemTemplate>
                        <DataTemplate>
                            <Grid Margin="0,0,20,0">
                                <TextBlock Width="400" TextWrapping="Wrap" FontSize="20" Margin="0,0,0,0"  VerticalAlignment="Center" Text="{Binding}" ></TextBlock>
                            </Grid>
                        </DataTemplate>
                    </toolkit:ListPicker.FullModeItemTemplate>
                </toolkit:ListPicker>

O / P的图像:

Normal Full mode