2014-12-05 3 views
0

Я программирую приложение, которое будет отображать данные из RSS-канала. Мне нужно только небольшое представление, чтобы показать небольшое изображение и описание. У меня есть пользовательский ListBox с одним стекем, где есть и. Проблема в том, что каждый элемент в этом списке имеет некоторую высоту, но мне нужна эта высота для динамического изменения длины текста и размера изображения.Динамическая высота StackPanel в ListBox custom ItemTemlate, WP8, C#, WPF

Там мой ListBox:

<ListBox x:Name="gui_listNovinky" SelectedIndex="-1" Height="500" VerticalAlignment="Top" ScrollViewer.VerticalScrollBarVisibility="Hidden" HorizontalContentAlignment="Stretch" > 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Border BorderThickness="0,1,0,0" BorderBrush="Black" Margin="10"> 
       <StackPanel Name="stackpanel" Orientation="Horizontal" Height="500"> 
        <StackPanel Width="435" Height="1000"> 
         <Image Source="{Binding Image}" Height="200" Width="230" VerticalAlignment="Top"/> 

         <TextBlock Text="{Binding Description}" MaxHeight="290" FontSize="20" VerticalAlignment="Top" Foreground="Black" TextWrapping="Wrap" /> 
        </StackPanel> 
       </StackPanel> 
      </Border> 
     </DataTemplate> 

    </ListBox.ItemTemplate> 
</ListBox> 

И как это выглядит. Вы можете видеть это раздражающее свободное пространство ниже изображения и текста. Так некрасиво ... :(

img

Я буду очень благодарен за решение :)

PS:. Если есть ошибки в моем английском, то не бойтесь спрашивать и я объясню. :)

ответ

0

Не применяйте размер внутри шаблона данных. Измененный DataTemplate, который решит проблему.

<DataTemplate> 
    <Border BorderThickness="0,1,0,0" 
      BorderBrush="Black" 
      Margin="10"> 
     <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition /> 
      </Grid.RowDefinitions> 
      <Image Source="{Binding Image}" 
        Height="200" 
        Width="230" 
        VerticalAlignment="Top" /> 
      <TextBlock Text="{Binding Description}" 
         MaxHeight="290" 
         FontSize="20" 
         Grid.Row="1" 
         VerticalAlignment="Top" 
         Foreground="Black" 
         TextWrapping="Wrap" /> 
     </Grid> 
    </Border> 
</DataTemplate> 
+0

Когда я использую это, мой ListBox остается пустым. Не знаю почему. :( – GrowSing

+0

Просто измените код, исходя из ваших потребностей, вы не сможете его использовать, как есть .. –

+0

Прошу прощения, у меня была ошибка в привязке. – GrowSing

Смежные вопросы