2011-02-03 2 views
2

Я пытаюсь написать простое приложение, которое будет анализировать фид feedburner (в формате XML), извлекать данные из фида, вычищать ненужные данные и выталкивать его на экран.listBox Text not Wrap

У меня возникли трудности с переносом текста в listBox. Я провел несколько последних ночей, ударяя головой о стол, пытаясь заставить его работать. Я установил Silverlight Toolkit и пытаюсь использовать WrapPanel, но он, похоже, не хочет работать. Текст отображается в списке ListBox, я просто не могу заставить текст обернуть.

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 

      <ListBox x:Name="listBox1" Width="456" Height="646" ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
       <ListBox.ItemsPanel> 
        <ItemsPanelTemplate> 
         <toolkit:WrapPanel /> 
        </ItemsPanelTemplate> 
       </ListBox.ItemsPanel> 
      </ListBox> 
    <Grid> 

Вот фрагмент кода, который я использую для добавления элементов в ListBox:

StringReader stream = new StringReader(e.Result); 
      XmlReader reader = XmlReader.Create(stream); 
      string areaName = String.Empty; 

      while (reader.Read()) 
      { 
       if (reader.NodeType == XmlNodeType.Element) 
       { 
        if (reader.Name == "description") 
        { 
         areaName = reader.ReadElementContentAsString(); 
         areaItem = new ListBoxItem(); 
         areaItem.Content = areaName; 
         listBox1.Items.Add(areaItem); 

        } 
       } 
      } 

Любая помощь будет принята с благодарностью!

UPDATE

Я был в состоянии получить текст для заполнения TextBlock с помощью этой строки:

textBlock1.Inlines.Add(areaName); 

вместо этой строки:

listBox1.Items.Add(areaItem); 

только проблема, с которой я сейчас сталкиваюсь, - это TextBlock, не заполняющийся под областью TextBlock a и не прокручивается.

ОБНОВЛЕНИЕ 2

Фиксированный это путем удаления Высота = линии "х" в XAML. Я все готов!

ответ

2

Поместите текст в TextBlock и включите упаковку?

Внутри вашего ListBox:

<TextBlock Text="{Binding}" TextWrapping="Wrap"/> 
+0

Спасибо за предложение TextBlock. Теперь он обтекает текст, но только показывает одну запись. Вот строка, которую я изменил в C#: textBlock1.Text = areaName; // areaName - это строка – doot

+0

Думаю, вам стоит потратить некоторое время на примеры. http://create.msdn.com/en-US –

+0

Мне пришлось вернуться к использованию listBox и до сих пор не могу на всю жизнь понять, как обернуть текст. Я не могу использовать textBlock для отображения текста, поскольку каждый элемент в спискеBox ДОЛЖЕН быть выбранным. – doot