Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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# 如何在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);

我正在使用PickerRenderer for IOS,我想从右侧留出一些空间。如何从右侧填充?这里是图像,请检查

尝试使用带有图像和选择器的网格

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在选择器中提供默认箭头。