微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Picker Xamarin中的左对齐图标从默认右侧形成macOS

如何解决Picker Xamarin中的左对齐图标从默认右侧形成macOS

我正在尝试自定义Xamarin形式macOS的Picker,但没有成功。我创建了一个工作正常的渲染器,但是添加属性似乎并未对选择器进行任何更改。

目标是使图标左对齐,使文本在右侧。现在,该图标在右侧,文本在左侧。

public class CustomPickerRenderer : PickerRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
    {
        base.OnElementChanged(e);
        var element = e.NewElement as Picker;

        if (Control != null && element != null)
        {
            Control.Bordered = false;
            Control.Font = NSFont.FromFontName("Helvetica Neue",(System.nfloat)element.FontSize);
            Control.Bordered = false;
            Control.Alignment = NSTextAlignment.Right;

            Control.AttributedTitle = new NSAttributedString("",foregroundColor: element.TextColor.ToNSColor(),paragraphStyle: new NSMutableParagraphStyle()
            {
                Alignment = NSTextAlignment.Right,Linespacing = 0f,ParagraphSpacing = 0f,ParagraphSpacingBefore = 0f
            });

            Control.ImagePosition = NSCellImagePosition.ImageLeft;
            Control.Cell.ImagePosition = NSCellImagePosition.ImageLeft;

        }
    }

    protected override void OnElementPropertyChanged(object sender,System.ComponentModel.PropertyChangedEventArgs e)
    {
        base.OnElementPropertyChanged(sender,e);
        var element = (Picker)this.Element;

        if (e.PropertyName == Picker.ItemsSourceProperty.PropertyName ||
            e.PropertyName == Picker.TitleProperty.PropertyName)
        {
            Control.AddItems(element.Items.ToArray());
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。