来自 xaml 的自定义渲染器的 Xamarin 访问 属性
Xamarin access property of a custom renderer from xaml
我有一个用于 xamarin 编辑器的 ios 自定义渲染,我正在尝试将 Control.ScrollEnabled
属性 在某些页面上设置为 true,在其他页面上设置为 false。
[assembly: ExportRenderer(typeof(ExtendedEditor), typeof(ExtendedEditorRenderer))]
namespace My.iOS.Renderers
{
public class ExtendedEditorRenderer : EditorRenderer
{
public ExtendedEditor ExtendedEditorElement => Element as ExtendedEditor;
protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
Control.ScrollEnabled = false;
}
}
}
}
以上是我的客户渲染器代码。如您所见,ScrollEnabled
属性 始终设置为 false。
有没有办法让我可以访问这些属性,例如 scrollenable、bordercolor、backgroundcolor 等。并将它们从 XAML?
更改
您将需要在 ExtendedEditor 控件上创建这些 Properties/BindableProperties
,然后使用 ExtendedEditorElement
属性 您在渲染器中访问它们已创建。
当您在 ExtendedEditor class 中声明属性时,您可以访问如下所示的属性:
protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
Control.ScrollEnabled = ExtendedEditorElement.ScrollEnabled;
}
}
我有一个用于 xamarin 编辑器的 ios 自定义渲染,我正在尝试将 Control.ScrollEnabled
属性 在某些页面上设置为 true,在其他页面上设置为 false。
[assembly: ExportRenderer(typeof(ExtendedEditor), typeof(ExtendedEditorRenderer))]
namespace My.iOS.Renderers
{
public class ExtendedEditorRenderer : EditorRenderer
{
public ExtendedEditor ExtendedEditorElement => Element as ExtendedEditor;
protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
Control.ScrollEnabled = false;
}
}
}
}
以上是我的客户渲染器代码。如您所见,ScrollEnabled
属性 始终设置为 false。
有没有办法让我可以访问这些属性,例如 scrollenable、bordercolor、backgroundcolor 等。并将它们从 XAML?
您将需要在 ExtendedEditor 控件上创建这些 Properties/BindableProperties
,然后使用 ExtendedEditorElement
属性 您在渲染器中访问它们已创建。
当您在 ExtendedEditor class 中声明属性时,您可以访问如下所示的属性:
protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
Control.ScrollEnabled = ExtendedEditorElement.ScrollEnabled;
}
}