silverlight - StackPanel 中的文本不换行 (wp7)

标签 silverlight windows-phone-7 grid stackpanel

我在文字换行方面遇到了问题。如果没有 StackPanel,这个 TextBlock 可以工作,但我需要在文本之前放置小图片。我也没有两列(前三行我只需要一列)

<ListBox.ItemTemplate>
    <DataTemplate>  
        <Grid>
             <Grid.RowDefinitions >
                 <RowDefinition Height="60"/>
                 <RowDefinition Height="170"/>
                 <RowDefinition Height="50"/>
                 <RowDefinition Height="Auto"/>
                 <RowDefinition Height="Auto"/>
                 <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>

             <TextBlock Grid.Row="0"></TextBlock>                                   
             <TextBlock Grid.Row="1"></TextBlock>                                   
             <TextBlock Grid.Row="2"></TextBlock>                                   
             <StackPanel Grid.Row="3" Orientation="Horizontal">
                  <Image  Source="Picture.png" MaxHeight="20" MaxWidth="40" HorizontalAlignment="Center" Margin="0,20,0,0" />
                  <TextBlock Text="Long long long text from Binding" FontSize="25" HorizontalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Bottom" Padding="20,10,0,0"  />
             </StackPanel>
         </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>

最佳答案

StackPanel 将根据Orientation 为其组件提供无限的高度或宽度。

如果我查看您的 XAML,我会建议在网格中使用两列,并将图像放在左侧:

<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="40" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions >
                <RowDefinition Height="60"/>
                <RowDefinition Height="170"/>
                <RowDefinition Height="50"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>

            <TextBlock Grid.Row="0" Grid.ColumnSpan="2"></TextBlock>
            <TextBlock Grid.Row="1" Grid.ColumnSpan="2"></TextBlock>
            <TextBlock Grid.Row="2" Grid.ColumnSpan="2"></TextBlock>
            <Image Grid.Row="3" Source="Picture.png" MaxHeight="20" HorizontalAlignment="Center" Margin="0,20,0,0" />
            <TextBlock Grid.Column="1" Grid.Row="3" Text="Long long long text from Binding" FontSize="25" 
                        HorizontalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap" 
                        VerticalAlignment="Bottom" Padding="20,10,0,0"  />
        </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>

注意第一个文本框上的 Grid.ColumnSpan,这将跨越整个网格宽度,而不仅仅是第一列。

关于silverlight - StackPanel 中的文本不换行 (wp7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8338044/

相关文章:

sorting - 在分页网格 extjs 4 中对整个商店进行排序

c# - WPF/银光 : Expanding root tree node

c# - 使用 View 模型值的依赖属性

c# - 使用 WP7 和 WP8 之间共享的 LongListSelector 的屏幕

silverlight - WP7 设置日期选择器边框颜色

c# - Windows Phone 7 中的 "WebClient.UploadString"方法在哪里?

silverlight - nuget:仅为特定目标框架指定依赖项

c# - 如何在 Silverlight 中的 Border 元素上制作虚线边框?

extjs 更改事件的面板标题

python - 带网格的 tkinter Canvas 滚动条?