2014-12-05 132 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