locked
为什么TextBlock中各处的空格的宽度不一样? RRS feed

  • 问题

  • 比如一个textblock1,

    textblock1.Text="          哈哈          哈哈h          哈";

    上面的三段空格都是10个,但显示出来的长度却不一样。跟在英文字母h后面的10个空格都比较宽,而前两段的10个空格的宽度比较小。如果选择不同的字体的话,它们之间的宽度的差距会有所变化。

    这是为什么呢?

    2011年7月21日 6:10

答案

  • 我觉得可能是跟在英文后面的空格用英文字体,跟在中文后面的用中文字体,两种字体下空格宽度不同吧。

    如果一定要解决的话,尝试一下将字符串拆分,然后加入一些必要的Run标签看能否解决。

    Run标签的使用方式如下:

    <TextBlock
    Name="textBlock">
    <Run Background="LightGreen">Text run 1.</Run>
    <LineBreak/><Run Background="LightBlue">Text run 2.</Run>
    <LineBreak/><Run Background="LightYellow">Text run 3.</Run>
    </TextBlock>

     

     


    2011年8月1日 8:50
    版主

全部回复

  • 你输入的时候全、半角不一致吧
    Window Phone 7 is comming!
    2011年7月25日 6:13
    版主
  • 为了避免这个问题,我只输入了第一段空格,后面的空格都是复制粘贴的
    2011年7月26日 1:24
  • 我觉得可能是跟在英文后面的空格用英文字体,跟在中文后面的用中文字体,两种字体下空格宽度不同吧。

    如果一定要解决的话,尝试一下将字符串拆分,然后加入一些必要的Run标签看能否解决。

    Run标签的使用方式如下:

    <TextBlock
    Name="textBlock">
    <Run Background="LightGreen">Text run 1.</Run>
    <LineBreak/><Run Background="LightBlue">Text run 2.</Run>
    <LineBreak/><Run Background="LightYellow">Text run 3.</Run>
    </TextBlock>

     

     


    2011年8月1日 8:50
    版主