2013-01-15 49 views
0

我有一個包含文本塊和圖像的列表框。如果文字太長,我想要進入第二行。目前只有文本是可見的。這是我的XAML在兩行文本塊內顯示長文本

<ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal"> 
          <Image Source="{Binding imgurl}" MaxHeight="120" MaxWidth="120" Margin="0,10,0,0" /> 
          <TextBlock Text="{Binding title}" Margin="50,0,12,0" /> 
         </StackPanel> 
        </DataTemplate> 
    </ListBox.ItemTemplate> 

有人能幫助我嗎?

截圖 enter image description here

+0

我在想我可能會誤解,但這只是一個實例,要求TextBlock上的'TextWrapping ='Wrap''? –

+0

@ChrisW。我編輯了問題的屏幕截圖。我希望你現在能更好地理解。 – Steaphann

回答

0

啊你,所以我想這是因爲它看上去那樣簡單。你只需要限制你的文本的寬度,並調用TextWrapping,你有多個選項來完成。這裏有一對夫婦的可能性...

<ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal"> 
          <Image Source="{Binding imgurl}" MaxHeight="120" MaxWidth="120" Margin="0,10,0,0" /> 
          <TextBlock Text="{Binding title}" Margin="50,0,12,0" TextWrapping="Wrap" MaxWidth="{Binding ActualWidth, ElementName=Self}"/> 
         </StackPanel> 
        </DataTemplate> 
    </ListBox.ItemTemplate> 

或者你可以有一個小組做應該由其父得到限制......

<ListBox.ItemTemplate> 
        <DataTemplate> 
         <Grid Margin="0,10,0,0"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition/> 
           <ColumnDefinition Width="*"/> 
          </Grid.ColumnDefinitions> 
          <Image Source="{Binding imgurl}" MaxHeight="120" MaxWidth="120" /> 
          <TextBlock Grid.Column="1" Text="{Binding title}" TextWrapping="Wrap" Margin="50,0,2,0" /> 
         </Grid> 
        </DataTemplate> 
    </ListBox.ItemTemplate> 

,或者根據此列表框是如何奠定了作爲一個孩子,它甚至可能就像將TextWrapping="Wrap"添加到TextBlock然後在列表框本身上設置MaxWidth一樣簡單。無論哪種方式,希望這可以幫助... :)

+0

好的,非常感謝你!我是Windows phone開發新手。很難找到好的文檔。 – Steaphann

+0

@StefGeelen不用擔心,我們都在那裏。樂意效勞。 :) –