C# 如何在PickerRenderer xamarin窗体中从右侧填充箭头 公共类CustomPickerRenderer:PickerRenderer { 受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e) { 基础。一个要素发生变化(e); if(this.Control!=null) { var downarrow=UIImage.FromBundle(“您的图像”); var textField=this.Control; textField.RightViewMode=UITextFieldViewMode.Always; textField.RightView=新UIImageView(向下箭头); } } }
我正在使用PickerRenderer for IOS,我想从右侧留出一些空间。如何从右侧填充?这里是图像,请检查尝试使用带有图像和选择器的网格C# 如何在PickerRenderer xamarin窗体中从右侧填充箭头 公共类CustomPickerRenderer:PickerRenderer { 受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e) { 基础。一个要素发生变化(e); if(this.Control!=null) { var downarrow=UIImage.FromBundle(“您的图像”); var textField=this.Control; textField.RightViewMode=UITextFieldViewMode.Always; textField.RightView=新UIImageView(向下箭头); } } },c#,xamarin.ios,xamarin.forms,C#,Xamarin.ios,Xamarin.forms,我正在使用PickerRenderer for IOS,我想从右侧留出一些空间。如何从右侧填充?这里是图像,请检查尝试使用带有图像和选择器的网格 public class CustomPickerRenderer : PickerRenderer { protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Picker> e) { base.OnElementChanged(e);
public class CustomPickerRenderer : PickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Picker> e)
{
base.OnElementChanged(e);
if (this.Control != null)
{
var downarrow = UIImage.FromBundle("your image");
var textField = this.Control;
textField.RightViewMode = UITextFieldViewMode.Always;
textField.RightView = new UIImageView(downarrow);
}
}
}
也许它对您有帮助尝试使用带有图像和选择器的网格
public class CustomPickerRenderer : PickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Picker> e)
{
base.OnElementChanged(e);
if (this.Control != null)
{
var downarrow = UIImage.FromBundle("your image");
var textField = this.Control;
textField.RightViewMode = UITextFieldViewMode.Always;
textField.RightView = new UIImageView(downarrow);
}
}
}
也许这有助于您解决Xamarin Picker Arrow问题 除了@Pratik post之外,除非您为图像设置点击事件,否则单击箭头将不起作用 XAML
<Grid>
<Picker/>
<Image Source="arrow.png" HorizontalOptions="End" Magin="5"/>
</Grid>
Xamarin选取器箭头解决方案 除了@Pratik post之外,除非您为图像设置点击事件,否则单击箭头将不起作用 XAML
<Grid>
<Picker/>
<Image Source="arrow.png" HorizontalOptions="End" Magin="5"/>
</Grid>
这是一个自定义渲染器,允许您在图像的右侧为选择器添加填充 它适用于条目元素
private void Arrow_OnTapped(object sender, EventArgs e)
{
catPicker.Focus();
}
公共类DefaultPickerRender:PickerRender
{
加莱尔底线;
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
var element=(DefaultPicker)this.element;
if(this.Control!=null&&this.Element!=null&&Element.Image!=null))
{
var viewPadding=新UIView(帧:新CGRect(x:-10,y:0,宽度:12,高度:12));
var imageView=新UIImageView(帧:新CGRect(-10,0,宽度:12,高度:12));
imageView.Center=viewPadding.Center;
imageView.Image=UIImage.FromBundle(element.Image);
添加子视图(imageView);
Control.RightView=视图填充;
Control.RightViewMode=UITextFieldViewMode.Always;
//Control.RightView=向下箭头;//新建UIImageView(向下箭头);
Control.LeftView=newUIView(newCGRECT(0,0,10,0));
Control.LeftViewMode=UITextFieldViewMode.Always;
if(元素IsTransparent)
Control.BackgroundColor=UIColor.Clear;
其他的
Control.BackgroundColor=(新UIColor(红色:0.10f,绿色:0.10f,蓝色:0.10f,alpha:1.00f)).ColorWithAlpha((nfloat)0.03);/#191919
底线=新CALayer();
bottomLine.BackgroundColor=UIColor.Black.CGColor;
Control.BorderStyle=UITextBorderStyle.None;
Control.Layer.AddSublayer(底线);
}
}
公共覆盖无效绘制(CGRect rect)
{
基础绘制(rect);
bottomLine.Frame=新的CGRect(0,Control.Frame.Height-1,Control.Frame.Width,2);
}
}
这是一个自定义渲染器,允许您在图像的右侧添加填充,以便拾取
它适用于条目元素
private void Arrow_OnTapped(object sender, EventArgs e)
{
catPicker.Focus();
}
公共类DefaultPickerRender:PickerRender
{
加莱尔底线;
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
var element=(DefaultPicker)this.element;
if(this.Control!=null&&this.Element!=null&&Element.Image!=null))
{
var viewPadding=新UIView(帧:新CGRect(x:-10,y:0,宽度:12,高度:12));
var imageView=新UIImageView(帧:新CGRect(-10,0,宽度:12,高度:12));
imageView.Center=viewPadding.Center;
imageView.Image=UIImage.FromBundle(element.Image);
添加子视图(imageView);
Control.RightView=视图填充;
Control.RightViewMode=UITextFieldViewMode.Always;
//Control.RightView=向下箭头;//新建UIImageView(向下箭头);
Control.LeftView=newUIView(newCGRECT(0,0,10,0));
Control.LeftViewMode=UITextFieldViewMode.Always;
if(元素IsTransparent)
Control.BackgroundColor=UIColor.Clear;
其他的
Control.BackgroundColor=(新UIColor(红色:0.10f,绿色:0.10f,蓝色:0.10f,alpha:1.00f)).ColorWithAlpha((nfloat)0.03);/#191919
底线=新CALayer();
bottomLine.BackgroundColor=UIColor.Black.CGColor;
Control.BorderStyle=UITextBorderStyle.None;
Control.Layer.AddSublayer(底线);
}
}
公共覆盖无效绘制(CGRect rect)
{
基础绘制(rect);
bottomLine.Frame=新的CGRect(0,Control.Frame.Height-1,Control.Frame.Width,2);
}
}
是,它正在工作,但单击事件在箭头上不起作用。请尝试此。。在UWP的情况下隐藏图像。因为UWP在picker中提供默认箭头。是,它正在工作,但单击事件在箭头上不工作。请尝试此。。在UWP的情况下隐藏图像。因为UWP在选择器中提供默认箭头。