none
TextBlock在固定大小的情况下改变显示的字体大小如何动态计算它能显示多少字? RRS feed

  • 问题

  • 我的意图是做一个文本阅读器,是翻页形式的,不是一次显示完,现在问题是我怎么知道它一页能显示下多少字,因为可以改变字体和大小,所以怎么如何动态计算它能显示多少字?这样就导致了经常TextBlock超出panel的大小显示不全,还有一个问题,中英文的一个任意字符是不是占用空间一样啊?
    2011年4月14日 9:30

答案

  • -->          我想知道该怎么解决让textblock在固定的大小下,显示适合的字数。

    看了你这个需求,我依然困惑。不太清楚你到底想教textblock做一个什么样的事情。

    1) 你是想让TextBlock开始显示800字,然后当改变字体的时候,你想让Textblock宽度不变,高度变大,依然显示800字?

    2) 你是想让Textblock字体改变的时候,比如字体变大了,你是想让Textblock只显示少一点的字数? 比如700字?

    我给你几个方法,你可以试试,看看能不能给你什么启示,然后解决你的问题。

    1 参考一下“ClipToBounds” 属性。

    2 参考一下“TextTrimming” 属性。

    3 你可以考虑当改变字体的时候,对Textblock的内容重新加载、

    我希望你能讲你的问题描述清楚,这样大家才能针对你的问题为你提供解决方案。


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年4月18日 7:37
    版主

全部回复

  • 我感觉这个问题如果去算显示多少字,即时能做也会相当麻烦。

    不如想想如何让textblock自动换行,TextWrapping属性可以设置文本进行换行的方式,具体需求查下msdn吧。

    2011年4月14日 9:59
  • 我已经进行了换行,现在就是不知道一次给Textbook的值分配多少个字符
    2011年4月14日 11:13
  • 我不是很清楚你的这个描述:

    -->      这样就导致了经常TextBlock超出panel的大小显示不全,

    你能提供一些测试代码么?

     


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年4月15日 8:50
    版主
  •     <Grid>
        <TextBlock TextWrapping="Wrap" Width="500">
          Long time ago,There was a temple in a mountain,
          and an old monk lived there. One day, a young monk came to the temple.
          The old monk told the little monk that:Long time ago
          ,There was a temple in a mountain...
        </TextBlock>
        </Grid>
    
    测试下来并没有出现超出panel的问题,我怀疑是不是因为你并没有指定textblock宽度的原因。
    2011年4月15日 9:29
  • 是的,如果你没有指定textblock的宽带,而且也没有让container(panel)剪切边界的话,textblock会超出边界的。

    根据你的描述,我不是很清楚你问题的状态,如果你问题依然存在,能描述一下你现在存在的问题是什么?


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年4月15日 9:34
    版主
  • 我指定了宽度的,现在的问题是这样的

    我从txt中读取出text,然后进行比如相当于一页为800字的分段,将每页的内容在绑定到textblock上,但是如果我把字体调大,一页肯定就呈现不下800字了,这样宽度是没变,但是高度超出了,我想知道该怎么解决让textblock在固定的大小下,显示适合的字数。

    2011年4月18日 5:50
  • -->          我想知道该怎么解决让textblock在固定的大小下,显示适合的字数。

    看了你这个需求,我依然困惑。不太清楚你到底想教textblock做一个什么样的事情。

    1) 你是想让TextBlock开始显示800字,然后当改变字体的时候,你想让Textblock宽度不变,高度变大,依然显示800字?

    2) 你是想让Textblock字体改变的时候,比如字体变大了,你是想让Textblock只显示少一点的字数? 比如700字?

    我给你几个方法,你可以试试,看看能不能给你什么启示,然后解决你的问题。

    1 参考一下“ClipToBounds” 属性。

    2 参考一下“TextTrimming” 属性。

    3 你可以考虑当改变字体的时候,对Textblock的内容重新加载、

    我希望你能讲你的问题描述清楚,这样大家才能针对你的问题为你提供解决方案。


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年4月18日 7:37
    版主
  •    你好,Lz,请问你的问题解决了么?我也遇到同样的问题了、求解?

    2012年6月15日 3:59