附加 属性 或行为时,如何访问 xamarin 表单元素背后的本机控件?
When attaching a property or behavior, how can I access to native control behind xamarin forms elements?
每个 Xamarin 表单元素都有一个渲染器,并且每个渲染器背后都有一个本机控件。
每当我 开发附加 属性 或行为 时,我都可以访问 Xamarin 表单元素,但无法访问其背后的本机控件。
有什么方法可以访问该本机控件吗?
注意:我说的是内置的 Xamarin 表单元素,例如 Entry,这与新控件、元素和渲染无关。
提前致谢。
您应该创建一个自定义控件,例如继承内置 Entry 的 YourEntry,以及继承 EntryRenderer 的自定义渲染器。在任何覆盖的方法中,您都可以像这样调用 this.Control 和 this.Element:
var entry = (YourEntry)this.Element;
this.Control.Font = UIFont.FromName(entry.FontFamily, (float)entry.FontSize);
this.Control 是您的本机控件,this.Element 是您的 Xamarin.Forms 控件。
我认为本文将帮助您将 Xamarin.Forms
视图转换为 Native
视图。
http://www.michaelridland.com/xamarin/creating-native-view-xamarin-forms-viewpage/
使用xamarin平台效果、附加属性和全局样式,您可以访问iOS中Entry标签后面的所有UIKit控件。您可以将一些代码应用于任何平台中 xamarin 表单组件背后的任何本机控件。
https://medium.com/@ysmoradi/how-to-add-xamarin-native-platform-effect-to-all-elements-9214cf6d7b8a
每个 Xamarin 表单元素都有一个渲染器,并且每个渲染器背后都有一个本机控件。
每当我 开发附加 属性 或行为 时,我都可以访问 Xamarin 表单元素,但无法访问其背后的本机控件。
有什么方法可以访问该本机控件吗?
注意:我说的是内置的 Xamarin 表单元素,例如 Entry,这与新控件、元素和渲染无关。
提前致谢。
您应该创建一个自定义控件,例如继承内置 Entry 的 YourEntry,以及继承 EntryRenderer 的自定义渲染器。在任何覆盖的方法中,您都可以像这样调用 this.Control 和 this.Element:
var entry = (YourEntry)this.Element;
this.Control.Font = UIFont.FromName(entry.FontFamily, (float)entry.FontSize);
this.Control 是您的本机控件,this.Element 是您的 Xamarin.Forms 控件。
我认为本文将帮助您将 Xamarin.Forms
视图转换为 Native
视图。
http://www.michaelridland.com/xamarin/creating-native-view-xamarin-forms-viewpage/
使用xamarin平台效果、附加属性和全局样式,您可以访问iOS中Entry标签后面的所有UIKit控件。您可以将一些代码应用于任何平台中 xamarin 表单组件背后的任何本机控件。
https://medium.com/@ysmoradi/how-to-add-xamarin-native-platform-effect-to-all-elements-9214cf6d7b8a