我正在开发一个简单的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;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句