Вы можете создать экземпляр FormattedText
и установить его свойство MaxTextWidth
, которое делает перенос текста.Затем либо получите Bounds
его геометрии, либо, возможно, только его высоту из свойства Extent
:
var testString = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor";
var formattedText = new FormattedText(
testString,
CultureInfo.InvariantCulture,
FlowDirection.LeftToRight,
new Typeface("Segoe UI"),
20,
Brushes.Black);
formattedText.MaxTextWidth = 200;
var bounds = formattedText.BuildGeometry(new Point(0, 0)).Bounds;
var height = formattedText.Extent;
Однако не уверен, почему height
и bounds.Height
не совсем равны.