Xamarin 表单编辑器 AutoSize 不起作用

Cow*_*org 5 xaml editor xamarin xamarin.forms

我只是误解了 Editor-control 上的名称“AutoSize”-property 还是它根本不起作用?

我在 xaml 中有一个这样的控件:

<Editor AutoSize="TextChanges" HeightRequest="100"/>
Run Code Online (Sandbox Code Playgroud)

在高度为 100 时效果很好,但是当我写了几行时,它不会改变大小/高度。上面的文字只是向上滚动。

Jac*_*Hua 9

原因:

auto-size如果HeightRequest已设置该属性,则编辑器将不会。

你可以参考:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/text/editor#auto-sizing-an-editor

解决方案:

您可以删除该HeightRequest属性。Editor当您继续输入其他行时,该属性会自动增长。

<Editor Text="Enter text here" AutoSize="TextChanges" />
Run Code Online (Sandbox Code Playgroud)


Vor*_*zar 7

如果您希望 AutoSize 工作,同时高度为 100,您可以执行以下操作:创建一个继承 Editor 的新类,覆盖下面的方法并在页面上使用新类

protected override SizeRequest OnMeasure(double widthConstraint, double heightConstraint)
{
     var sizeRequest = base.OnMeasure(widthConstraint, heightConstraint);

     return new SizeRequest(new Size(sizeRequest.Request.Width, Math.Max(100, sizeRequest.Request.Height)));
}
Run Code Online (Sandbox Code Playgroud)