2012-09-18 43 views
0

我在固定大小列Grid中有幾個TextBlock s。即Grid的大小可能改變,但其列寬度全部相同(例如整個大小的10%),並且每列包含TextBlock查找多個TextBlock的最大可能字體大小

所有的字體大小TextBlock s 必須必須相同。

我怎樣才能找到最大可能的字體大小,使得TextBlock中的所有文本都可見?

回答

0

您可以使用Graphics.MeasureString Method (String, Font, Int32)來計算字體大小。 然後使用一些行爲魔法將字體大小綁定到TextBlock。

private void MeasureStringWidth(PaintEventArgs e) 
{ 

    // Set up string. 
    string measureString = "Measure String"; 
    Font stringFont = new Font("Arial", 16); 

    // Set maximum width of string. 
    int stringWidth = 200; 

    // Measure string. 
    SizeF stringSize = new SizeF(); 
    stringSize = e.Graphics.MeasureString(measureString, stringFont, stringWidth); 

    // Draw rectangle representing size of string. 
    e.Graphics.DrawRectangle(new Pen(Color.Red, 1), 0.0F, 0.0F, stringSize.Width, stringSize.Height); 

    // Draw string to screen. 
    e.Graphics.DrawString(measureString, stringFont, Brushes.Black, new PointF(0, 0)); 
}