将样式应用于Xamarin.Forms中的iOS自定义渲染器

Ben

我正在开发一个简单的Xamarin.Forms应用程序,并且已经为Android和UWP创建了自定义Entry渲染器。

我已经成功将自己的自定义样式应用于Entry渲染器,如下所示:

  • 对于UWP

    protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
    {
        base.OnElementChanged(e);
    
        var customControl = e.NewElement;
        var nativeControl = new FormsTextBox();
    
        var style = Windows.UI.Xaml.Application.Current.Resources["UserNameEntry"] as Windows.UI.Xaml.Style;
        nativeControl.Style = style;
        nativeControl.PlaceholderText = customControl.Placeholder;
        SetNativeControl(nativeControl);
    }
    
  • 对于Android

    protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
    {
        base.OnElementChanged(e);
        if (e.OldElement == null)
        {
            var nativeEditText = (global::Android.Widget.EditText)Control;
            nativeEditText.SetBackground(Resources.GetDrawable("@drawable/username"));
        }
    }
    

因此,使用来自Android和UWP平台的本机样式工具来应用任何自定义样式非常简单。

我的问题是,有什么办法可以对iOS进行同样的处理吗?如何使用基于描述的文件(例如UWP中的style.xaml或Android中的style.axml)应用样式?

Himanshu Dwivedi

您可以像这样为IOS做:

protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);

            if (Control != null)
            {
                Control.BorderStyle = UITextBorderStyle.None;
                UIImage img = UIImage.FromFile("ImageName.png");
                Control.Background = img;      
            }
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Xamarin.Forms Android的自定义渲染器(条目)中的OnElementChanged仅被调用一次

使用自定义渲染器强制重绘Xamarin.Forms视图

如何在自定义渲染器中渲染xamarin.forms视图

ZXing Xamarin形成iOS白色背景(无自定义渲染器)

如何使用Xamarin Forms自定义渲染器隐藏Android选项卡?

如何在F#中为Xamarin.Forms创建自定义渲染器

当我尝试将全局样式应用于Xamarin Forms中的自定义ContentView时发生NullReferenceException

Xamarin Forms Maps Circle自定义渲染器

如何使用自定义渲染器在Xamarin.Forms,Android,iOs,UWP上更改Slider的颜色?

将特定样式应用于Xamarin.Forms元素的所有子元素

Xamarin按钮自定义渲染器(iOS)

Xamarin Forms中的自定义页面渲染器的Android版式页面未膨胀

使用自定义渲染器时未触发Xamarin Forms Switch的Toggled事件

如何获取要包装的文本并在Xamarin Forms iOS自定义渲染器中在下面添加另一行?

如何在xamarin.forms中为日期选择器实现自定义渲染器?

如何创建Xamarin.Forms自定义渲染器,其中渲染器基类使用泛型?

Xamarin IOS在自定义渲染器中基于IsFocused属性隐藏搜索栏图标

自定义帧渲染器,用于Android [Xamarin.Forms]中唯一的拐角半径值

Mac和UWP中的LibVLCSharp VideoView的自定义渲染器(Xamarin.Forms)

Xamarin.Forms:用于在UITableViewCell上显示公开指示器的自定义渲染器

使用自定义渲染器的Xamarin.Forms中的CollectionView

Xamarin形成WinRT条目自定义渲染器

Xamarin.Forms中的条目自定义渲染器(为Android添加所有边框)

Xamarin Forms - iOS 自定义渲染器 - 处理观察者

Xamarin.Forms.Maps 自定义折线渲染器在视图中不呈现

如何在 iOS 上使用自定义渲染器隐藏 Xamarin.Forms TableView 页眉/页脚?

Xamarin Forms - 在 ios 中居中页面标题的自定义渲染器

Xamarin 自定义渲染器更新值

未调用 Xamarin IOS 自定义渲染器覆盖的 Draw 方法