2017-09-19 9 views
1

Comment pouvez-vous changer la bordure de focus et la couleur du curseur dans un contrôle d'entrée dans les formulaires Xamarin? Dans l'émulateur, il est rouge standard?Changer la couleur de focus du contrôle d'entrée dans Xamarin Forms

j'ajouté dans mon projet Android

[assembly: ExportRenderer(typeof(CustomEntryControl), typeof(MyEntryRenderer))] 
namespace MyApp.Droid 
{ 
    public class MyEntryRenderer : EntryRenderer 
    { 
     protected override void OnElementChanged(ElementChangedEventArgs<Entry> e) 
     { 
      base.OnElementChanged(e); 

      if (Control != null) 
      { 
       Control.SetBackgroundColor(global::Android.Graphics.Color.LightGreen); 
      } 
     } 
    } 
} 

mais ne peut pas trouver la propriété pour la frontière ou le curseur?

enter image description here

Répondre

0

Essayez ci-dessous le code

public class EntryCustomRenderer : EntryRenderer 
    { 
     protected override void OnElementChanged(ElementChangedEventArgs<Entry> e) 
    { 
     base.OnElementChanged(e); 

     if (Control != null) 
     { 
      Control.SetBackgroundColor(global::Android.Graphics.Color.Transparent); 

      // set the cursor color the same as the entry TextColor 
      IntPtr IntPtrtextViewClass = JNIEnv.FindClass(typeof(TextView)); 
      IntPtr mCursorDrawableResProperty = 
        JNIEnv.GetFieldID(IntPtrtextViewClass, "mCursorDrawableRes", "I"); 
      // replace 0 with a Resource.Drawable.my_cursor 
      JNIEnv.SetField(Control.Handle, mCursorDrawableResProperty, 0); 
     } 
    } 
} 

Notez que si vous avez un ensemble de TextColor pour l'entrée, le curseur utilisera cette couleur si vous gardez « 0 » valeur pour id ressources

+0

Et où exactement puis-je utiliser ce code alors? – user7849697

+0

Aaah mais j'utilise Xamarin Forms, pas Android natif – user7849697

+0

regardez ma réponse mise à jour –