2012-03-06 84 views
1

我在對齊列表框中的文本時出現問題。我基本上試圖創建像iOS中的uitableview一樣工作的列表框。TextBlock在WP7列表框中的文本對齊

在下面的代碼中,左邊的TextBlock被設置爲我想要的,但我無法獲得正確的TextBlock表現得像我想要的那樣。現在,文本被右對齊,以便當文本太長而不適合屏幕時,它會在開始處切斷文本,並僅顯示文本的結尾。我想要發生的是將TextBlock右對齊,以便從右側延伸,但如果左對齊,則使文本內部顯示文本的開頭並切斷文本的結尾。

<phone:PhoneApplicationPage.Resources> 
    <Style x:Key="ListBoxItemStretchContentStyle" TargetType="ListBoxItem"> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
    </Style> 
</phone:PhoneApplicationPage.Resources> 


<ListBox Height="327" Margin="8,274,0,0" Name="myListBox" Width="442" ItemContainerStyle="{StaticResource ListBoxItemStretchContentStyle}"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
         <Grid> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="Auto"/> 
           <ColumnDefinition Width="*"/> 
          </Grid.ColumnDefinitions> 
          <TextBlock Grid.Column="0" Text="Title Text" HorizontalAlignment="Left" Name="cellTitle" /> 
          <TextBlock Grid.Column="1" Text="This is some text that is too long to fit on the screen" HorizontalAlignment="Right" TextAlignment="Left" Padding="20,0,0,0" /> 
        </Grid> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

回答

0

TextTrimming可能對此有所幫助。 設置TextWrapping="NoWrap"後,您可以嘗試TextTrimming="WordEllipsis"。然後嘗試修改TextAlignment

希望有所幫助。

+0

當我這樣做時,文本從右邊的TextBlock中消失。 – Chris 2012-03-06 19:55:25

0

如果我理解正確,您可以設置textblock的maxwidth參數以防止重疊?

MaxWidth="" 
+0

這將工作,如果左邊的TextBlock寬度總是相同的,但在我的應用程序,他們都是不同的。有沒有辦法從ListBox寬度中減去左側TextBlock的寬度以獲得正確TextBlock的大小? – Chris 2012-03-06 19:58:35