【问题标题】:Silverlight, wpf measure TextBlock text problem!Silverlight,wpf测量TextBlock文字问题!
【发布时间】:2011-05-04 19:25:42
【问题描述】:

我的 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. 当我为样式“TextStyle”设置设置器时,所需大小不会改变 例如 setter 为 FontSize 设置值为 50。

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

    但希望身高只有 15 岁!这种测量方法有什么问题?我怎样才能得到文本块的实际大小?

【问题讨论】:

    标签: .net wpf silverlight-4.0 textblock


    【解决方案1】:

    试试这个

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

    【讨论】:

    • 是的,这解决了第一个问题。但是如何用setter中设置的字体大小来衡量呢?
    • 为了解决第二个问题,我稍微更改了代码,请再次检查。
    • Nothing...TextBlock 字体大小 = 12,在设置器中我有 50。文本测量为 12。:(
    • 删除setter代码并将该逻辑也放入您的代码中,然后再测量和更新布局。
    • 我希望我能以适当的方式帮助你,但不幸的是这台机器上没有安装SL项目类型,如果没有人回答,我会在几个小时内给你答复。您可以在阅读后删除此评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 2015-07-01
    • 1970-01-01
    • 2011-08-15
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多