【发布时间】:2017-12-14 02:31:42
【问题描述】:
我想创建一个 Xamarin 表单编辑器控件,当它被填充时会改变它的高度(当上一行中的空间完成时添加一个新行)。我只对 WinPhone 和 Android Platfroms 感兴趣。
编辑器本身不支持此类属性。
我知道 Android 原生控件 (EditText) 支持它(不确定 WinPhone 变体 TextBox)。但我不确定如何实现它。
如果有人能解释我如何为这些平台创建渲染器,那将非常有帮助。
编辑
我找到了这个部分解决方案,它工作得很好,但不是那么自然(例如 Android 中的 EditText)。
class RoundedEditor : Editor
{
public RoundedEditor()
{
this.TextChanged += (sender, e) => { this.InvalidateMeasure(); };
}
}
如果有人能提供更好的解决方案,我会很高兴。
编辑 2
以下是它现在工作的结果:
UWP
写第一行:
按回车键:
上一行没有按照我的意愿完全显示。
安卓
在 android 中它实际上工作得很好:
【问题讨论】:
-
您可以找到自定义解决方案以获取更多详细信息,请查看此链接-developer.xamarin.com/guides/xamarin-forms/…
-
我知道渲染器,但我不知道如何具体地使用渲染器在编辑器中启用调整大小选项,这意味着我不知道在渲染器中编写什么代码。
-
好的,我们可以通过XLap控件获取帮助,这里是github URL-github.com/XLabs/Xamarin-Forms-Labs/wiki/ExtendedEntry
-
“我找到了这个部分解决方案,它工作得很好,但它不是那么自然(例如 Android 中的 EditText)。”,为什么你认为它不那么自然?您的代码运行良好。
-
效果更好,但并不完美。例如,当我按下回车键时,我可能只看到前一行的一半(下半部分)。我会将图片添加到 ilustrate。
标签: xamarin xamarin.android xamarin.forms xamarin.winphone xamarin.windows