我的 Win2D CanvasControl 不会根据其内容的尺寸自动调整自身大小。 (UWP)

My Win2D CanvasControl doesn't automatically resize itself based on its content's dimensions. (UWP)

所以我通过 Win2D 创建了一个文本编辑器来克服 UWP playtform 的 RichEditBox 限制。基本上我有一个 CanvasControl 用来通过 Draw 事件的 args.DrawingSession.DrawTextLayout() 方法绘制文本。

问题是 CanvasControl 不会自行调整大小以适应其中绘制的内容。是否有我无法启用的功能,或者是否应该在每次调用 Draw 事件处理程序时手动完成?处理此问题的最有效方法是什么?谢谢!

CanvasTextLayout.LayoutBounds.HeightCanvasControl里面对渲染高度的描述,但这并不是CanvasControl控件本身的高度(其实CanvasControl.Height总是在调试中显示 NaN

只有当CanvasControlHeight 属性大于ScrollViewer的高度时,才会显示滚动条。

因此在渲染文本后,您可以手动设置 CanvasControlHeight

// render code
// ...
double height = textLayout.LayoutBounds.Height;
canvasControl.Height = height;

此致。