Windows XAML: LineCount в TextBlock?
У меня есть текстовый блок, который я пишу на холсте. Поскольку он находится на холсте, я вручную указываю x-координаты и y-координаты.
Моя проблема в том, что моя y-координата зависит от LineCount обтекания моего TextBlock (из-за ограниченной ширины).
Например, текст "ДОБАВИТЬ Бананы" записывается как:
ДОБАВИТЬ Бананы
который имеет 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?