如何创建可以通过xaml创建的自定义Xamarin.Forms组件?

时间:2014-08-19 14:52:29

标签: c# xaml xamarin.forms

如果这个问题已经得到解答,我道歉。我想基于Xamarin.Forms创建一个带有一些特定行为的制表符组件,其中制表符定义xaml类似于:

<Tab OnTabChange="Some_Event_Handler">
<Tabs>
<Tab Text="xxx" />
<Tab Text="yyy" />
</Tab>
</Tab>

是否有任何资源可以使用我可以查看的自定义xaml?

非常感谢任何见解。

1 个答案:

答案 0 :(得分:0)

最简单的方法是创建自定义渲染器。最简单的方法是扩展现有元素并赋予其新功能。

第一步是创建元素。在类内部创建一个静态只读BindableProperty和一个使用GetValue和SetValue的非静态属性。这将支持数据绑定。

每个平台都需要知道如何渲染新控件,因此添加一个类,如MyLabelRenderer.cs。在该文件中,您将要覆盖可能需要呈现控件的方法。

public class MyLabelRenderer : LabelRenderer
{
    protected override void OnElementChanged (
         ElementChangedEventArgs<Label> e)
    {
        base.OnElementChanged (e);
        MyLabel el = (MyLabel)this.Element;
        // custom stuff here
    }
}

然后声明一个本地命名空间并可以使用您的自定义对象

<local:myLabel  ... >

有关详细演练,请参阅http://jliberty.me/customRenderer

希望有所帮助

-jesse