C# 使用'设置键盘类型(例如Url键盘);键盘标志';也

C# 使用'设置键盘类型(例如Url键盘);键盘标志';也,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,根据我们可以设置一个输入的键盘到一个Url键盘。它还告诉我们可以设置键盘标志 但是我们怎么能把两者都设置好呢?以任何方式影响键盘的唯一方法似乎是将其设置为某个键盘。似乎没有办法改变现有的键盘。似乎我们无法从Xamarin.Forms中同时实现这两个选项。相反,我们可以通过自定义渲染器访问本机视图来实现 从Xamarin中的条目定义派生类。表单: public class CustomEntry : Entry { } Android自定义条目渲染器: [assembly: ExportRend

根据我们可以设置一个输入的键盘到一个Url键盘。它还告诉我们可以设置键盘标志


但是我们怎么能把两者都设置好呢?以任何方式影响键盘的唯一方法似乎是将其设置为某个键盘。似乎没有办法改变现有的键盘。

似乎我们无法从Xamarin.Forms中同时实现这两个选项。相反,我们可以通过自定义渲染器访问本机视图来实现

从Xamarin中的条目定义派生类。表单:

public class CustomEntry : Entry
{
}
Android自定义条目渲染器:

[assembly: ExportRenderer(typeof(CustomEntry), typeof(CustomEntryRenderer))]

namespace MyProject.Android.Renderers
{
    public class CustomEntryRenderer : EntryRenderer
    {
        public CustomEntryRenderer(Context context) : base(context)
        {
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);
            var element = Element as CustomEntry;
            if (element == null || Control == null) return;

            Control.InputType = InputTypes.TextVariationUri | InputTypes.TextFlagCapWords;
        }

    }
}
[assembly: ExportRenderer(typeof(CustomEntry), typeof(CustomEntryRenderer))]

namespace MyProject.iOS.Renderers
{
    public class CustomEntryRenderer : EntryRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);
            var element = Element as CustomEntry;
            if (Control == null || element == null) return;

            Control.AutocapitalizationType = UITextAutocapitalizationType.Words;       
            Control.KeyboardType = UIKeyboardType.Url;
        }
    }
}
[程序集:ExportRenderer(typeof(CustomEntry)、typeof(CustomEntryRenderer))]
命名空间MyProject.Android.renders
{
公共类CustomEntryRenderer:EntryRenderer
{
公共CustomEntryRenderer(上下文):基本(上下文)
{
}
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
var元素=作为CustomEntry的元素;
if(element==null | | Control==null)返回;
Control.InputType=InputTypes.TextVariationUri | InputTypes.TextFlagCapWords;
}
}
}
iOS自定义条目渲染器:

[assembly: ExportRenderer(typeof(CustomEntry), typeof(CustomEntryRenderer))]

namespace MyProject.Android.Renderers
{
    public class CustomEntryRenderer : EntryRenderer
    {
        public CustomEntryRenderer(Context context) : base(context)
        {
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);
            var element = Element as CustomEntry;
            if (element == null || Control == null) return;

            Control.InputType = InputTypes.TextVariationUri | InputTypes.TextFlagCapWords;
        }

    }
}
[assembly: ExportRenderer(typeof(CustomEntry), typeof(CustomEntryRenderer))]

namespace MyProject.iOS.Renderers
{
    public class CustomEntryRenderer : EntryRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);
            var element = Element as CustomEntry;
            if (Control == null || element == null) return;

            Control.AutocapitalizationType = UITextAutocapitalizationType.Words;       
            Control.KeyboardType = UIKeyboardType.Url;
        }
    }
}
[程序集:ExportRenderer(typeof(CustomEntry)、typeof(CustomEntryRenderer))]
命名空间MyProject.iOS.Renderers
{
公共类CustomEntryRenderer:EntryRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
var元素=作为CustomEntry的元素;
if(Control==null | | element==null)返回;
Control.AutocapitalizationType=UITextAutocapitalizationType.Words;
Control.KeyboardType=UIKeyboardType.Url;
}
}
}

Hi@isiro!您希望创建什么类型的键盘?@brandonminick Url-keyboard没有自动大写(至少)。