मैं Picker नियंत्रण का उपयोग कर रहा हूं, डिफ़ॉल्ट रूप से यह ब्लैक स्क्रीन पर व्हाइट अंडरलाइन रंग दिखाता है।

enter image description here

लेकिन मुझे सफेद स्क्रीन पृष्ठभूमि रंग की आवश्यकता है, फिर Picker रेखांकन बिल्कुल प्रदर्शित नहीं हो रहा है। नीचे दी गई छवि देखें:

enter image description here

तो मैं Picker अंडरलाइन रंग कैसे बदल सकता हूं

यह मेरा Picker है

 <Picker TitleColor="Black" Title="--Select--" />
2
Arvind Chourasiya 6 मई 2019, 18:24

2 जवाब

सबसे बढ़िया उत्तर

आप इसे प्राप्त करने के लिए कस्टम रेंडरर का उपयोग कर सकते हैं:

एंड्रॉयड के लिए:

[assembly: ExportRenderer(typeof(Picker), typeof(CustomPickerRenderer))]
namespace App18.Droid
{
  public class CustomPickerRenderer : PickerRenderer
   {
      private Context context;
      public CustomPickerRenderer(Context context) : base(context)
       {
        this.context = context;
       }

      protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
       {
        base.OnElementChanged(e);
        if (Control == null || e.NewElement == null) return;
        //for example ,change the line to red:
        if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
            Control.BackgroundTintList = ColorStateList.ValueOf(Color.Red);
        else
            Control.Background.SetColorFilter(Color.Red, PorterDuff.Mode.SrcAtop);
       }
   }
}

आईओएस के लिए:

[assembly: ExportRenderer(typeof(Picker), typeof(CustomPickerRenderer))]
namespace App18.iOS
{
  public class CustomPickerRenderer : PickerRenderer
   {

    protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
    {
        base.OnElementChanged(e);

        if (Control == null || e.NewElement == null)
            return; 
        Control.Layer.BorderWidth = 1;
        Control.Layer.BorderColor = Color.Red.ToCGColor();
    }
   }
}
3
Leo Zhu - MSFT 7 मई 2019, 04:26
    <StackLayout Orientation="Vertical" Spacing="0" HorizontalOptions="FillAndExpand">
                                <app1:DatePickerNoLine x:Name="datePickerScheduleDate"    Unfocused="ScheduleCriteriaChanged" VerticalOptions="Center" HorizontalOptions="FillAndExpand" FontSize="Subtitle" BackgroundColor="LightBlue"/>
                                <BoxView x:Name="BoxdatePickerScheduleDate" HeightRequest="1" HorizontalOptions="FillAndExpand" VerticalOptions="EndAndExpand"   Color="Black" WidthRequest="{Binding WidthRequest, Source={x:Reference datePickerScheduleDate}}" />
                            </StackLayout>

Use the custom renderer to remove the underline that comes with picker.

protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement == null)
            {
                this.Control.Text = Element.Date.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
               
                Control.Layer.BackgroundColor = Color.White.ToCGColor();

                Control.BorderStyle = UITextBorderStyle.None;
                Control.Layer.BorderColor = Color.Transparent.ToCGColor();

                Control.LeftView = new UIKit.UIView(new CGRect(0, 0, 10, 0));
                Control.LeftViewMode = UIKit.UITextFieldViewMode.Always;


                UITextField entry = Control;
                UIDatePicker picker = (UIDatePicker)entry.InputView;
                picker.PreferredDatePickerStyle = UIDatePickerStyle.Wheels;

            }
        }
0
Arun 5 मार्च 2021, 20:23