我的 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.Height
是CanvasControl
里面对渲染高度的描述,但这并不是CanvasControl
控件本身的高度(其实CanvasControl.Height
总是在调试中显示 NaN
。
只有当CanvasControl
的Height
属性大于ScrollViewer
的高度时,才会显示滚动条。
因此在渲染文本后,您可以手动设置 CanvasControl
的 Height
。
// render code
// ...
double height = textLayout.LayoutBounds.Height;
canvasControl.Height = height;
此致。
所以我通过 Win2D 创建了一个文本编辑器来克服 UWP playtform 的 RichEditBox
限制。基本上我有一个 CanvasControl
用来通过 Draw
事件的 args.DrawingSession.DrawTextLayout()
方法绘制文本。
问题是 CanvasControl
不会自行调整大小以适应其中绘制的内容。是否有我无法启用的功能,或者是否应该在每次调用 Draw
事件处理程序时手动完成?处理此问题的最有效方法是什么?谢谢!
CanvasTextLayout.LayoutBounds.Height
是CanvasControl
里面对渲染高度的描述,但这并不是CanvasControl
控件本身的高度(其实CanvasControl.Height
总是在调试中显示 NaN
。
只有当CanvasControl
的Height
属性大于ScrollViewer
的高度时,才会显示滚动条。
因此在渲染文本后,您可以手动设置 CanvasControl
的 Height
。
// render code
// ...
double height = textLayout.LayoutBounds.Height;
canvasControl.Height = height;
此致。