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

Picker Xamarin中的左对齐图标从默认右侧形成macOS,macos,xamarin,xamarin.forms,Macos,Xamarin,Xamarin.forms,我正在尝试为Xamarin forms macOS定制选择器,但没有成功。我已经创建了一个工作正常的渲染器,但是我添加的属性似乎没有对选择器进行任何更改 目标是将图标左对齐,使文本位于右侧。现在图标在右边,文本在左边 public class CustomPickerRenderer : PickerRenderer { protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)

我正在尝试为Xamarin forms macOS定制选择器,但没有成功。我已经创建了一个工作正常的渲染器,但是我添加的属性似乎没有对选择器进行任何更改

目标是将图标左对齐,使文本位于右侧。现在图标在右边,文本在左边

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());
        }
    }
}
公共类CustomPickerRenderer:PickerRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
var element=e.NewElement作为选择器;
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.attributeditle=new NSAttributedString(“”,foregroundColor:element.TextColor.ToNSColor(),paragraphStyle:new NSMutableParagraphStyle()
{
对齐=NSTextAlignment。对,
线间距=0f,
段落间距=0f,
段落间距前=0f
});
Control.ImagePosition=NSCellImagePosition.ImageLeft;
Control.Cell.ImagePosition=NSCellImagePosition.ImageLeft;
}
}
受保护的覆盖无效OneElementPropertyChanged(对象发送方,System.ComponentModel.PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(发送方,e);
var element=(Picker)this.element;
如果(e.PropertyName==Picker.ItemsSourceProperty.PropertyName||
e、 PropertyName==Picker.TitleProperty.PropertyName)
{
Control.AddItems(element.Items.ToArray());
}
}
}

Hi,从共享代码来看,修改文本和图像之间的位置似乎没有用。哎哟,好吧,不可能使用自定义单元格?Hi,我还想确定您是否要修改MacOS中输入单元格的箭头图标位置?不,这将是拾取键,您可以共享所需效果的屏幕截图,那我来查一查。