wp7 TextWrapping не работает?

#windows-phone-7 #textblock

#windows-phone-7 #текстовый блок

Вопрос:

В Orientation = «Horizontal» TextWrapping не работает приведенный ниже код, пожалуйста, проверьте ошибку, скажите мне.

Mycode:

 <StackPanel>
                        <StackPanel Orientation="Horizontal" Width="400">
                            <TextBlock Text="dfgdfdgdfgfdgdfg" Foreground="AntiqueWhite" FontSize="30" TextWrapping="Wrap"/>
                            <TextBlock Text=" vs " FontSize="30" Foreground="White" TextWrapping="Wrap"/>
                            <TextBlock Text="Indiaafda (text)" Foreground="Bisque" FontSize="30" TextWrapping="Wrap"/>
                        </StackPanel>

                </StackPanel>
  

Мне это не нравится:

 South AfricaTeamPlayed vs west
Indies (test)
  

но выходные данные отображают это,

 South AfricaTeamPlayed vs west
                  Indies (test)
  

Спасибо

Ответ №1:

Вы должны использовать Grid вместо StackPanel .

Что-то вроде этого,

     <Grid Width="400" Margin="40,0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <TextBlock Text="dfgdfdgdfgfdgdfg" Foreground="AntiqueWhite" FontSize="30" TextWrapping="Wrap"/>
        <TextBlock Text=" vs " FontSize="30" Foreground="White" TextWrapping="Wrap" Grid.Column="1"/>
        <TextBlock Text="Indiaafda (text)" Foreground="Bisque" FontSize="30" TextWrapping="Wrap" Grid.Column="2"/>
    </Grid>
  

Я, вероятно, переделаю все это примерно так,

     <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid d:LayoutOverrides="Height" Margin="40,0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition />
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <TextBlock Text="dfgdfdgdfgfdgdfg" Foreground="AntiqueWhite" FontSize="30" TextWrapping="Wrap"/>
            <TextBlock Text=" vs " FontSize="30" Foreground="White" TextWrapping="Wrap" Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"/>
            <TextBlock Text="Indiaafda (text)" Foreground="Bisque" FontSize="30" TextWrapping="Wrap" Grid.Column="2"/>
        </Grid>
        <Grid Grid.Row="1">
            <TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" Text="where other stuff goes" VerticalAlignment="Center"/>
        </Grid>
    </Grid>
  

Обновить

     <Grid VerticalAlignment="Top" Margin="40,0">
        <TextBlock Foreground="AntiqueWhite" FontSize="30" TextWrapping="Wrap">
            <Run Text="south africa"/>
            <Run Text="vs"/>
            <Run Text="windows phone"/>
        </TextBlock>
    </Grid>
  

Комментарии:

1. dfgdfdgdfdfgfdgdfg это предложение также разделено по одному. я хочу продолжить текстовый блок таким образом, dfgdfdgdfdfgfdgdfg против Indiaafda (текст), он будет состоять из двух строк. В этом коде первое предложение содержит две строки, а второе предложение содержит две строки.

2. Итак, вы хотите, чтобы первый текст был в одной строке, а второй — в двух строках? Попробуйте изменить определение первого столбца на автоматическую ширину.

3. я первым текстом исправляю третий тест, показывающий вертикально, а не вторую строку.

4. Вы имеете в виду, что хотите, чтобы третий шел полностью влево во второй строке? Можете ли вы прояснить свой вопрос? Я так потерян…

5. Я создаю 3 текстовых блока, три из которых хорошо отображаются один за другим. но третий при достижении конца не идет вторым line.it принимает некоторые данные ширины, отображающие только определенную ширину.

Ответ №2:

Удалите свойство Width панели стека, а затем попробуйте.