0

テキストブロックと画像を含むリストボックスがあります。テキストが長すぎる場合は、2行目になります。現時点では、テキストのみが表示されています。これが私のXAMLです

 <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="{Binding imgurl}" MaxHeight="120" MaxWidth="120" Margin="0,10,0,0" />
                            <TextBlock Text="{Binding title}" Margin="50,0,12,0" />
                        </StackPanel>
                    </DataTemplate>
  </ListBox.ItemTemplate>

誰か助けてもらえますか?

スクリーンショット ここに画像の説明を入力してください

4

1 に答える 1

0

ああ、それで、見た目と同じくらい簡単だと思います。テキストがある場所の幅を制限して呼び出すTextWrapping必要があります。これを実行するには、複数のオプションがあります。ここにいくつかの可能性があります...

 <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="{Binding imgurl}" MaxHeight="120" MaxWidth="120" Margin="0,10,0,0" />
                            <TextBlock Text="{Binding title}" Margin="50,0,12,0" TextWrapping="Wrap" MaxWidth="{Binding ActualWidth, ElementName=Self}"/>
                        </StackPanel>
                    </DataTemplate>
  </ListBox.ItemTemplate>

または、親によって制限されるはずのパネルにそれを実行させることもできます...

<ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid Margin="0,10,0,0">
                            <Grid.ColumnDefinitions>
                               <ColumnDefinition/>
                               <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Image Source="{Binding imgurl}" MaxHeight="120" MaxWidth="120" />
                            <TextBlock Grid.Column="1" Text="{Binding title}" TextWrapping="Wrap" Margin="50,0,2,0" />
                        </Grid>
                    </DataTemplate>
  </ListBox.ItemTemplate>

または、このリストボックスが子としてどのようにレイアウトされているかによってはTextWrapping="Wrap"、TextBlockに追加してからMaxWidth、リストボックス自体にを設定するのと同じくらい簡単な場合もあります。いずれにせよ、これがお役に立てば幸いです... :)

于 2013-01-15T22:53:55.070 に答える