【问题标题】:How can I create a custom Xamarin.Forms component that can be creating through xaml?如何创建可以通过 xaml 创建的自定义 Xamarin.Forms 组件?
【发布时间】:2014-08-19 23:46:46
【问题描述】:

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

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

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

非常感谢任何见解。

【问题讨论】:

    标签: c# xaml xamarin.forms


    【解决方案1】:

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

    第一步是创建元素。在类内部创建一个静态只读 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

    希望有帮助

    -杰西

    【讨论】:

    • 链接现在好像失效了;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    相关资源
    最近更新 更多