0

我得到了这个 longlistselector,它包含一个标题和一个描述文本,它们都是动态的。我希望它可以缩放,以便描述文本在超出长列表选择器的宽度时换行。

下图很好地说明了这个问题:

在此处输入图像描述

我想如何工作:

在此处输入图像描述

我现在得到的代码:

                <Infrastructure:LongListSelector ItemsSource="{Binding TrackingInformationItems}" Width="480">
                <Infrastructure:LongListSelector.ItemTemplate>
                    <DataTemplate>
                        <templates:ListboxTemplateSelector Content="{Binding}">
                            <templates:ListboxTemplateSelector.HeaderAndBody>
                                <DataTemplate>
                                    <StackPanel Width="480" MaxWidth="480" Orientation="Horizontal" Margin="0,5,0,5" Visibility="{Binding Body, Converter={StaticResource EmptyStringConverter}}">
                                        <TextBlock Text="{Binding Header}" Style="{StaticResource TextboxLabelStyle}"/>
                                        <TextBlock Text="{Binding Body}" TextWrapping="Wrap"  Style="{StaticResource DefaultTextBlockStyle}"/>
                                    </StackPanel>
                                </DataTemplate>
                            </templates:ListboxTemplateSelector.HeaderAndBody>
                        </templates:ListboxTemplateSelector>
                    </DataTemplate>
                </Infrastructure:LongListSelector.ItemTemplate>
            </Infrastructure:LongListSelector>

有什么建议我可以如何做到这一点?谢谢

4

1 回答 1

1

嵌入你StackPanel的 aGrid并将你的应用Width到它而不是调用你的TextWrapping,但就像 Tonio 指出的那样,如果没有足够的空间,它会将你的 Body 放在你的 Header 下,因为它在 aStackPanel但是你可以做更多这样的事情;

<TextBlock MaxWidth="480" Margin="0,5" TextWrapping="Wrap" Visibility="{Binding Body, Converter={StaticResource EmptyStringConverter}}">
   <Run Text="{Binding Header}" Foreground="Blue"/>
   <Run Text="{Binding Body}"/>
</TextBlock>

希望这可以帮助。

于 2013-08-05T13:25:24.290 回答