Windows XAML:文本块中的行数?

Windows XAML:文本块中的行数?,xaml,winrt-xaml,textblock,line-count,Xaml,Winrt Xaml,Textblock,Line Count,我有一个写在画布上的文本块。因为它位于画布上,所以我手动指定x坐标和y坐标 我的问题是,我的y坐标取决于我的文本块上包装的行数(由于宽度有限) 例如,文本“添加香蕉”写为: 加 香蕉 它有两行计数 根据行数,我会做一些事情 现在,我用这个来确定TextWidth,然后从那里进行计算。但是,仍然存在一些异常值(例如,计算出的不是3条线,而是实际视觉中的2条线): 在Windows应用程序Xaml中有没有最好的方法来实现这一点 你能解决这个问题吗?我有一些问题…嗨,meadlai,我刚刚使用了Tex

我有一个写在画布上的文本块。因为它位于画布上,所以我手动指定x坐标和y坐标

我的问题是,我的y坐标取决于我的文本块上包装的行数(由于宽度有限)

例如,文本“添加香蕉”写为:

加 香蕉

它有两行计数

根据行数,我会做一些事情

现在,我用这个来确定TextWidth,然后从那里进行计算。但是,仍然存在一些异常值(例如,计算出的不是3条线,而是实际视觉中的2条线):


在Windows应用程序Xaml中有没有最好的方法来实现这一点

你能解决这个问题吗?我有一些问题…嗨,meadlai,我刚刚使用了TextBlock的包装,并为TextBlock指定了一定的高度和宽度。谢谢。。。我在内存中用一个新的文本块来计算宽度。你能解决这个问题吗?我有一些问题…嗨,meadlai,我刚刚使用了TextBlock的包装,并为TextBlock指定了一定的高度和宽度。谢谢。。。我通过内存中的新文本块计算宽度。
private double stringWidth(string s, double fontSize)
{
    if(s==" ")
        s = "\u00A0";  //this line wasn't required in silverlight but is now

    TextBlock t = new TextBlock()
    {
        FontSize = fontSize,
        Text = s
    };
    t.Measure(new Size(double.MaxValue, double.MaxValue));  //this line wasn't required in silverlight but is now
    return t.ActualWidth;
}