繁体   English   中英

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

[英]Applying a style to an iOS custom renderer in Xamarin.Forms

我正在开发一个简单的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)应用样式?

您可以像这样为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;      
            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM