2012-03-30 56 views
2

我正在寫一個Windows Phone應用程序,我想實現「點擊文本擴展」功能。動態文本塊

我有一系列的TextBlocks,目前看起來很像這樣重複多次:

<TextBlock 
    Name="description" HorizontalAlignment="Left" VerticalAlignment="Top" 
    Margin="12,40,0,0" Width="444" 
    TextWrapping="NoWrap" TextTrimming="WordEllipsis" /> 

[注意最後兩個:TextWrapping="NoWrap"TextTrimming="WordEllipsis"和缺乏Height被設置]

這說明一行,當行比屏幕更長時,它以省略號結束,這是完美的。目前,當用戶點擊TextBlock時,我將TextWrapping轉換爲Wrap。這允許文本根據需要採用儘可能多的行(我想要的功能)。

問題是,當我打開TextWrappingWrap它擴展到它下面的TextBlock(請記住,我有一堆這些打包在一起)。此外,爲了得到它的擴展完全我從來沒有最初設定Height,所以如果我稍後再嘗試訪問它,我得到NaN(和ActualHeight從來沒有從26.6變化,不管它擴大多少行是)

我尋找一種方法來動態地將它下面的TextBlocks降低到顯示整個文本所需的數量,但我不知道「正確」的方式去實現它。 (上類似的說明:硬編碼Margin是不理想的,尤其是對於動態地擴大文本,有一個「RelativeLayout」(或類似的東西),我一直無法找到?)

回答

5

您是否嘗試過把您的TextBlocks在StackPanel的?這應該防止TextBlock對象重疊,並且可以設置它們各自的邊距值以確保您想要的間距。

+0

很好,謝謝! – pseudosudo 2012-03-30 06:18:13