2010-11-03 67 views
1

我無法獲得我的TextBlock的正確大小。Silverlight,wpf測量TextBlock文本問題!

我有幾行代碼:

TextBlock block = new TextBlock(); 
     block.Style = this.TextStyle; 
     block.UpdateLayout(); 
     block.Measure(new Size(this.ActualWidth, this.ActualHeight)); 
     block.Text = "3333"; 

     return block.DesiredSize; 

,我無法解決兩個問題是:

  1. block.DesiredSize.Width總是 爲零。正確計算高度 時。

  2. 當我設置setter方法式「文字樣式」 爲字號設置例如二傳手與價值50

     <Setter Property="FontSize" 
          Value="50"> 
        </Setter> 
    

    但期望中的高度只有15

  3. 所需的大小沒有變化!這種測量方法有什麼問題?我怎樣才能得到文本塊的真正大小?

回答

2

試試這個

TextBlock block = new TextBlock(); 
    block.Text = "3333"; 
    block.Style = this.TextStyle; 

    block.Measure(new Size(this.ActualWidth, this.ActualHeight)); 
    block.UpdateLayout(); 


    return block.DesiredSize; 
+1

是的,這解決了第一個問題。但是如何用setter中設置的字體大小進行測量? – Evgeny 2010-11-03 23:57:40

+1

要解決第二個問題,我已經更改了一些代碼,請再次檢查。 – 2010-11-04 00:02:40

+1

Nothing ... TextBlock字體大小= 12時,在setter中,我有50.並且文字測量爲12. :( – Evgeny 2010-11-04 00:07:58