Как переопределить родительский макет / непрозрачность представления для определенных элементов в формах xamarin? - PullRequest
0 голосов
/ 26 июня 2019

Итак, я пытаюсь разработать пользовательский элемент управления с непрозрачностью около 0,2 и его записью, но проблема здесь в том, что если я установлю непрозрачность записи, тогда заполнитель или текст подсказки также получит непрозрачность, и у моего пользовательского элемента управления есть изображение, которое также получает прозрачность, есть ли способ переопределить это?

Я попытался установить альфа в рендерере, но, похоже, это не сработало,

Вот мой рендер и вывод, который мне нужен, но то, что я получаю в действительности

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

        if (e.OldElement != null || e.NewElement == null)
            return;

        var element = (ImageEntry)this.Element;
        this.Control.Placeholder = element.Placeholder;            
        var textField = this.Control;
        if (!string.IsNullOrEmpty(element.Image))
        {
            switch (element.ImageAlignment)
            {
                case ImageAlignment.Left:
                    textField.LeftViewMode = UITextFieldViewMode.Always;
                    textField.LeftView = GetImageView(element.Image, element.ImageHeight, element.ImageWidth);
                    break;
                case ImageAlignment.Right:
                    textField.RightViewMode = UITextFieldViewMode.Always;
                    textField.RightView = GetImageView(element.Image, element.ImageHeight, element.ImageWidth);
                    break;
            }
        }
        this.Control.Layer.CornerRadius = 25;
        textField.BorderStyle = UITextBorderStyle.None;
        textField.Alpha = 1;
        CALayer bottomBorder = new CALayer
        {
            Frame = new CGRect(0.0f, element.HeightRequest - 1, this.Frame.Width, 1.0f),
            BorderWidth = 2.0f,
            BorderColor = element.LineColor.ToCGColor()
        };

        textField.Layer.AddSublayer(bottomBorder);
        textField.Layer.MasksToBounds = true;
    }

This is how i need it

но этоэто то, что я получаю

Any Inputs would be helpful

...