2014-12-05 52 views
0

我正在編程將顯示來自RSS提要的數據的應用程序。我只需要一點點看法來展示小圖片和描述。 我有自定義列表框與一個stackPanel在哪裏和。 問題是:該列表框中的每個項目都有一定的高度,但我需要這個高度根據圖像的長度和大小動態更改。ListBox中的StackPanel的動態高度自定義ItemTemlate,WP8,C#,WPF

有我的列表框:

<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 2014-12-05 09:32:31

+0

只是根據你的需要修改代碼;你不能使用它,因爲它是.. – 2014-12-05 09:34:36

+0

對不起,我有錯誤的綁定。謝謝。 – GrowSing 2014-12-05 12:23:20