2

Windows Phone 7用に作成しているアプリのリストボックスにTwitterフィードがあります。問題は、ツイートのテキストがリストボックスの端に折り返されるのではなく、切り取られていることです。このような新しい行:

リストボックスは、正常に機能するパノラマ内にあります。これは私のコードです:

<ListBox x:Name="cheapyListBox" Height="500" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="400" ScrollViewer.VerticalScrollBarVisibility="Hidden" HorizontalContentAlignment="Left" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" Height="132" Tap="Message_OnTap">
                <Image Source="{Binding ImageSource}" Height="73" Width="73" VerticalAlignment="Top" Margin="0,10,8,0"/>
                <StackPanel Width="Auto">
                    <!--<TextBlock Text="{Binding UserName}" FontSize="28" Margin="12,0,0,0" /> -->
                    <TextBlock Text="{Binding Message}" TextWrapping="Wrap" FontSize="24" />
                    <TextBlock Text="{Binding Date}" TextWrapping="Wrap" FontSize="20" />
                </StackPanel>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
 </ListBox>

ツイートテキストを切り取られるのではなく、折り返すにはどうすればよいですか?ありがとうございました。

4

1 に答える 1

5

内側のStackPanelは水平のStackpanel内にネストされているため、奥行きの制約はなく、テキストが長くなるにつれてTextBlocksは無限に拡大します。

この問題を修正するにはさまざまな方法がありますが、簡単な方法(必要な幅がわかっている場合)は、内側のStackPanelの幅を有限数に設定することです。

例えば:

<ListBox x:Name="cheapyListBox" Height="500" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Width="400" ScrollViewer.VerticalScrollBarVisibility="Hidden" HorizontalContentAlignment="Left" >

        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal" Height="132" Tap="Message_OnTap">
                    <Image Source="{Binding ImageSource}" Height="73" Width="73" VerticalAlignment="Top" Margin="0,10,8,0"/>
                    <StackPanel Width="400">
                        <!--<TextBlock Text="{Binding UserName}" FontSize="28" Margin="12,0,0,0" /> -->
                        <TextBlock Text="{Binding Message}" TextWrapping="Wrap" FontSize="24" />
                        <TextBlock Text="{Binding Date}" TextWrapping="Wrap" FontSize="20" />
                    </StackPanel>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

お役に立てれば!

于 2012-05-17T01:53:48.447 に答える