使用Win2D是否可以在没有drawingSession的情况下获得文本大小?

问题描述

此问题与该问题-How to calculate the size of a piece of text in Win2D不同-因为该方法的结果附加到Win2D CanvasControl的draw事件中。具体来说,它需要参数的DrawingSession。

我想知道是否可以在不调用draw函数的情况下知道文本的大小。这是需要的,因为我需要使用各种CanvasControls宽度或高度才能通过文本的大小进行设置。

解决方法

使用文本和格式创建CanvasTextLayout类的实例,并获取其DrawBounds属性。

using (var layout = new CanvasTextLayout(creator,"Hello world",format,200,100))
{
   var bounds = layout.DrawBounds;
}