我有一个我在Canvas上写的文本块。由于它在Canvas上,我手动指定x-coord和y-coord。
我的问题是,我的y-coord依赖于TextBlock上换行的LineCount(由于宽度有限)。
例如,“ADD香蕉”一词写成:
ADD 香蕉
有2行数。
根据行数,我会做点什么。
现在,我使用它来确定TextWidth,然后从那里进行计算。但是,仍有一些异常值(例如,不应该计算3行,实际视觉中2):
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;
}
在Windows App Xaml中有最好的方法吗?