Xamarin.Forms入门困扰与解决方式-No.3

有时候因应美工的需要,需要用底图搭配控件来达到漂亮的外观,但是控件自带的样式常常会抵触美工的设计,例如想要去除输入框自带的框线时,会发现Xamarin.Forms中的控件可以变化外观的属性很少,此时就必须使用特别的技巧来达到目的;本文延续第二篇的案例,演示控件自定义外观的解决方式。


演示版本:Xamarin.Forms.1.3.5.6337


演示目标:去除输入框的底线或外框线


Xamarin.Forms入门困扰与解决方式-No.3_第1张图片


想要客制化必须熟悉原生平台的API,步骤如下


1.Xamarin.Forms中的Entry控件在Android下是用EditText实现,iOS下是用UITextField实现,所以在解决方案的三个project中会分别新增三个空白类别,App1(Xamarin.Forms)新增CustomVisualElement.csApp1.Droid新增CustomVisualElementRenderer.Android.csApp1.iOS新增CustomVisualElementRenderer.iOS.cs。


Xamarin.Forms入门困扰与解决方式-No.3_第2张图片


2. CustomVisualElement.cs中定义要客制化的类别(必须继承自Xamarin.Forms的某个控件),在另外两个档中用该平台的API去变化,Android是将EditText.Background设成nulliOS是将UITextField.BorderStyle设成None。


Xamarin.Forms入门困扰与解决方式-No.3_第3张图片

Xamarin.Forms入门困扰与解决方式-No.3_第4张图片

Xamarin.Forms入门困扰与解决方式-No.3_第5张图片


3.Xaml中使用(ns1:MyEntry是客制控件,Entry是原始控件)



相关下载

 

范例文件下载
https://github.com/ThinkPowerXamarin/Xamarin.FormsAPP03

 

参考信息

 


http://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer



转载自:昕力大学

你可能感兴趣的:(Xamarin.Forms入门困扰与解决方式-No.3)