TextBlock没有包装在Grid中

Jur*_*eri 2 silverlight xaml windows-phone-7

我有以下XAML,它意味着在它旁边显示一个Image和两个TextBlocks顶部:

<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>
Run Code Online (Sandbox Code Playgroud)

我的问题是让文本换行.我已经尝试使用a Grid并指定列的宽度,但它不起作用.也没有将宽度值设置为自动.唯一有效的是硬编码宽度,但我不希望这样.谢谢.

Iri*_*son 5

Stackpanel将扩展到其内容的大小,因此它不是我将使用的.使用网格,如以下帖子中所述:

TextBlock TextWrapping不包装在StackPanel中

StackPanel中的文本不会换行(wp7)

stackpanel内的TextBlock不会包装文本

快速比较: 使用stackpanel之前

在此输入图像描述

使用一个网格后(您可能想稍微重新排列元素)

在此输入图像描述

最后一段的代码:

<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>
Run Code Online (Sandbox Code Playgroud)

您是否尝试将列的宽度设置为分数?width ="2*"这将为您提供一些没有像素集大小的边界.您需要以某种方式为容器设置约束.如果您有两列且未设置大小,则每个列将获得50%.2*将使总列的2/3列,见下面的示例.

在此输入图像描述