3

I have the following XAML which is meant to show an Image and two TextBlocks on top of eachother beside it:

<StackPanel Orientation="Horizontal" >
    <Image Source="{Binding CoverArt}" Height="150" />
        <StackPanel Orientation="Vertical">
            <StackPanel>
                <TextBlock FontSize="30" Text="{Binding Title}" TextWrapping="Wrap" />
            </StackPanel>
            <Grid Width="auto">
                <TextBlock FontSize="22" Text="{Binding Summary}" TextWrapping="Wrap" />
            </Grid>
         </StackPanel>
</StackPanel>

My problem is getting the text to wrap. I've tried using a Grid and assigning the columns' width but it didn't work. Neither did setting the width values to auto. The only thing that works is hard-coding the width, but I do not want that. Thanks.

4

1 に答える 1

5

Stackpanel はコンテンツのサイズに合わせて伸縮するので、私が使用するものではありません。次の投稿で説明されているように、グリッドを使用します。

TextBlock TextWrapping が StackPanel 内でラップされない

StackPanel のテキストが折り返されない (wp7)

stackpanel 内の TextBlock がテキストを折り返さない

簡単な比較: stackpanel を使用する前

ここに画像の説明を入力

1 つのグリッドを使用した後(要素を少し再配置したい場合があります)

ここに画像の説明を入力

最後のセグメントのコード:

<pre>
    <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Ellipse Fill="red" Width="150" Height="150" />
        <StackPanel Grid.Column="1" Orientation="Vertical">
            <StackPanel>
                <TextBlock FontSize="30" Text="basdljhba dnaiks d., kasndca casn oiäc cas lkcnaso ca dxjwöbdq wkjöbdqw dkjwqb " TextWrapping="Wrap" />
            </StackPanel>
            <Grid Width="auto">
                <TextBlock FontSize="22" Text="dewdewdewdewdewewd" TextWrapping="Wrap" />
            </Grid>
        </StackPanel>
    </Grid>

代わりに、列の幅を分数に設定しようとしましたか? width="2*" これにより、ピクセル セット サイズなしでいくつかの境界が得られます。何らかの方法で、コンテナに制約を設定する必要があります。2 つの列があり、サイズが設定されていない場合、それぞれ 50% になります。2* は、その列に合計列の 2/3 を与えるようにします。以下の例を参照してください。

ここに画像の説明を入力

于 2013-07-27T15:46:12.887 に答える