WP7 TextBlock внутри ListBox без переноса текста - PullRequest
5 голосов
/ 02 января 2011

У меня есть ListBox, в котором StackPanel s содержит TextBlock и Image по горизонтали, за которыми следует ContentPresenter. Вот как выглядит XAML:

<Grid x:Name="ContentPanel"
      Grid.Row="1"
      Margin="12,0,12,0">
  <ListBox x:Name="MainListBox"
           Margin="12,0,12,0"
           SelectionChanged="MainListBox_SelectionChanged">
    <ListBox.ItemTemplate>
      <DataTemplate>

        <StackPanel>
          <toolkit:ContextMenuService.ContextMenu>
            <toolkit:ContextMenu x:Name="ContextMenu"
                                 Opened="ContextMenu_Opened">
              <toolkit:MenuItem Header="edit"
                                Tag="edit"
                                Click="MenuItem_Click" />
              <toolkit:MenuItem Header="delete"
                                Tag="delete"
                                Click="MenuItem_Click" />
            </toolkit:ContextMenu>
          </toolkit:ContextMenuService.ContextMenu>
          <StackPanel Orientation="Horizontal"
                      HorizontalAlignment="Left">

            <!-- **** This text won't wrap **** -->
            <TextBlock Text="{Binding Header}"
                       TextWrapping="Wrap"
                       Style="{StaticResource PhoneTextNormalStyle}"
                       Foreground="{StaticResource PhoneAccentBrush}" />

            <Image Source="/image.png"
                   Visibility="{Binding ImageVisibility}" />

          </StackPanel>

          <ContentPresenter Content="{Binding Content}"
                            HorizontalAlignment="Stretch" />

        </StackPanel>

      </DataTemplate>
    </ListBox.ItemTemplate>
    <ListBox.ItemContainerStyle>
      <Style TargetType="ListBoxItem">
        <Setter Property="HorizontalContentAlignment"
                Value="Stretch" />
      </Style>
    </ListBox.ItemContainerStyle>
  </ListBox>
</Grid>

Я устанавливаю ItemsSource для ListBox в ObservableCollection в конструкторе страниц. Все работает нормально, пока текст Header не станет слишком длинным, и в этом случае он не переносится, как я указал. Как заставить TextBlock обернуть текст?

Спасибо за вашу помощь!

1 Ответ

8 голосов
/ 02 января 2011

Это, вероятно, результат отсутствия ограничения ширины TextBlock, поэтому он растет горизонтально за пределами экрана, где вы его не видите.

...