2011-11-16 80 views
4

我是windows phone7開發新手,有點小問題。如何將文本包裝到TextBlock中?

我在我的界面中有一個文本塊(標籤),在運行時我使用該標籤來顯示浮動數據。問題是文本太長(比屏幕寬度)時,它只顯示一半的數據(只有符合寬度的內容)。去多行並不重要,但我想顯示完整的內容。我測試了Textblock(Label)屬性,但沒有找到任何工作。

有人可以幫助我。 (我正在使用visual studio 2010)。由於


以下是XAML

<Grid x:Name="LayoutRoot" Height="98"> 
    <Ellipse Height="25" HorizontalAlignment="Left" Name="ellipse1" Stroke="Black" StrokeThickness="1" VerticalAlignment="Top" Width="46" Margin="6,13,0,0" Fill="#FFDB4C4C" /> 
    <TextBlock Height="30" HorizontalAlignment="Left" Margin="66,10,0,0" Name="textBlock1" Text="TextBlock" VerticalAlignment="Top" Width="402" AllowDrop="False" TextWrapping="NoWrap" UseLayoutRounding="True" DataContext="{Binding}" /> 
    <TextBlock Height="30" HorizontalAlignment="Left" Margin="66,44,0,0" Name="textBlock2" Text="TextBlock" VerticalAlignment="Top" Width="402" /> 
</Grid> 

回答

13

設置屬性TextWrapping = "Wrap"只要有足夠的垂直空間可能會解決你的問題。

編輯

根據您希望如何調整大小的行爲,這應該工作:

<Grid x:Name="LayoutRoot"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="auto" MinHeight="40" /> 
     <RowDefinition Height="auto" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="60" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 
    <Ellipse Margin="5" Stroke="Black" StrokeThickness="1" Fill="#FFDB4C4C" /> 
    <TextBlock HorizontalAlignment="Left" Margin="5" Name="textBlock1" VerticalAlignment="Top" TextWrapping="Wrap" UseLayoutRounding="True" Grid.Column="1" Text="sdfsdf sdf sdf sdf sd f sdf" /> 
    <TextBlock HorizontalAlignment="Left" Margin="5" Name="textBlock2" VerticalAlignment="Top" TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" Text="sdfsdf sdf sdf sdf sd f sdf" /> 
</Grid> 
+0

嗨艾爾諾,我試圖與該屬性。它沒有工作。當我看到你的帖子時,我再次進行測試。不,它僅包裹適合屏幕寬度的內容。它仍然不會顯示整個內容 – JibW

+0

請發佈xaml,也許是發生什麼事情和發生什麼的截圖。我不太清楚我是否理解你。 –

+0

是的它的工作原理。對不起。必須增加TextBlock的高度。有什麼辦法自動獲得正確的高度。因爲我們不確定數據足夠2行3行或多少。 – JibW