2014-12-05 66 views
2

我在ContentPage中有一个Entry,并在Xamarin Android中进行渲染。 这里我的问题是EditText背景颜色是白色的,游标颜色也是白色的。 这里我想将光标颜色改为黑色。 有什么方法可以改变光标颜色吗? 这是我的代码。更改Xamarin形式的EditText光标颜色

进入到ExtendedEntry:

public class ExtendedEntry : Entry { } 

使用ExtendedEntry在内容页:

var txtPhoneNumber = new ExtendedEntry { Placeholder = "Phone Number", Keyboard = Keyboard.Numeric, TextColor = Color.Black }; 

渲染ExtendedEntry在Xamarin的Android:

using Xamarin.Forms.Platform.Android; 
using Xamarin.Forms; 

[assembly: ExportRenderer(typeof(ExtendedEntry), typeof(ExtendedEntryRender))] 
namespace Project.Droid 
{ 
    public class ExtendedEntryRender : EntryRenderer 
    { 
     // Override the OnElementChanged method so we can tweak this renderer post-initial setup 
     protected override void OnElementChanged(ElementChangedEventArgs<Entry> e) 
     { 
      base.OnElementChanged(e); 
      if (e.OldElement == null) 
      { // perform initial setup 
       // lets get a reference to the native control 
       var nativeEditText = (global::Android.Widget.EditText)Control; 
       // do whatever you want to the textField here! 
      nativeEditText.SetBackgroundResource(Resource.Drawable.text_box); 
      } 
     } 
    } 
} 

任何人都可以帮我解决这个问题吗? 在此先感谢。

回答

-2

编辑:要改变cursur颜色的唯一选择是加入例如更改主题:在MainActivity

:“风格/ Theme.Holo.light机器人”
1

您可以更改

主题=光标颜色使用:

IntPtr IntPtrtextViewClass = JNIEnv.FindClass(typeof(TextView)); 
IntPtr mCursorDrawableResProperty = JNIEnv.GetFieldID (IntPtrtextViewClass, "mCursorDrawableRes", "I"); 
JNIEnv.SetField (Control.Handle, mCursorDrawableResProperty, 0); // replace 0 with a Resource.Drawable.my_cursor 

0将保持与Entry上的TextColor颜色相同。

+0

您可以将此处指出的代码与平台效果结合使用,以避免创建派生类 – Dbl 2016-11-02 16:44:03

相关问题