Xaml 如何在xamarin表单中自动大写键盘/条目

Xaml 如何在xamarin表单中自动大写键盘/条目,xaml,xamarin,xamarin.forms,xamarin.forms.entry,Xaml,Xamarin,Xamarin.forms,Xamarin.forms.entry,我有两个输入用户名和密码。用户名和密码始终为大写。我怎样才能强制键盘或输入,当我键入内容时,文本将是大写的 <Frame StyleClass="lpframe" x:Name="usernameFrame" CornerRadius="5" BorderColor="Transparent" HasShadow="False"> <StackLayout> <Label Text="USERN

我有两个输入用户名和密码。用户名和密码始终为大写。我怎样才能强制键盘或输入,当我键入内容时,文本将是大写的

<Frame StyleClass="lpframe" x:Name="usernameFrame" CornerRadius="5" BorderColor="Transparent" HasShadow="False">
                <StackLayout>
                    <Label Text="USERNAME" StyleClass="lbl-login">
                        <Label.FontFamily>
                            <OnPlatform x:TypeArguments="x:String">
                                <On Platform="Android" Value="OpenSans-Semibold.ttf#OpenSans-Semibold"/>
                            </OnPlatform>
                        </Label.FontFamily>
                    </Label>
                    <local:CustomEntry Placeholder="Username" PlaceholderColor="#879baa" Unfocused="entUser_Unfocused" StyleClass="form-control" ReturnType="Next" x:Name="entUser">
                        <local:CustomEntry.FontFamily>
                            <OnPlatform x:TypeArguments="x:String">
                                <On Platform="Android" Value="OpenSans-Regular.ttf#OpenSans-Regular"/>
                            </OnPlatform>
                        </local:CustomEntry.FontFamily>
                    </local:CustomEntry>
                </StackLayout>
            </Frame>
            <Frame StyleClass="lpframe" x:Name="passwordFrame" CornerRadius="5" BorderColor="Transparent" HasShadow="False">
                <StackLayout>
                    <Label Text="PASSWORD" StyleClass="lbl-login">
                        <Label.FontFamily>
                            <OnPlatform x:TypeArguments="x:String">
                                <On Platform="Android" Value="OpenSans-Semibold.ttf#OpenSans-Semibold"/>
                            </OnPlatform>
                        </Label.FontFamily>
                    </Label>
                    <local:CustomEntry Placeholder="Password" PlaceholderColor="#879baa" Unfocused="entPassword_Unfocused" IsPassword="True" StyleClass="form-control" ReturnType="Go" x:Name="entPassword">
                        <local:CustomEntry.FontFamily>
                            <OnPlatform x:TypeArguments="x:String">
                                <On Platform="Android" Value="OpenSans-Regular.ttf#OpenSans-Regular"/>
                            </OnPlatform>
                        </local:CustomEntry.FontFamily>
                    </local:CustomEntry>
                </StackLayout>
            </Frame>

您可以通过
平台效果轻松实现

Xaml示例: Android平台效应 注意:您正在向Android小部件EditText的当前过滤器列表添加一个
InputFilteralCaps

public class CapsEntrytEffect : PlatformEffect
{
    protected override void OnAttached()
    {
        var editText = Control as EditText;
        editText.SetFilters(editText.GetFilters().Append(new InputFilterAllCaps()).ToArray());
    }

    protected override void OnDetached()
    {
    }
}
iOS平台效应 在实现PlatformEffect的每个项目中,确保包括
ResolutionGroupName
ExportEffect
属性,以便表单可以找到并激活该平台的效果

ResolutionGroupName和ExportEffect示例::
回复:

您可以通过
平台效果轻松实现

Xaml示例: Android平台效应 注意:您正在向Android小部件EditText的当前过滤器列表添加一个
InputFilteralCaps

public class CapsEntrytEffect : PlatformEffect
{
    protected override void OnAttached()
    {
        var editText = Control as EditText;
        editText.SetFilters(editText.GetFilters().Append(new InputFilterAllCaps()).ToArray());
    }

    protected override void OnDetached()
    {
    }
}
iOS平台效应 在实现PlatformEffect的每个项目中,确保包括
ResolutionGroupName
ExportEffect
属性,以便表单可以找到并激活该平台的效果

ResolutionGroupName和ExportEffect示例::
回复:

现在您可以使用创建方法工厂修改键盘行为,如下所示:

<Entry Placeholder="Enter text here">
<Entry.Keyboard>
    <Keyboard x:FactoryMethod="Create">
        <x:Arguments>
            <KeyboardFlags>CapitalizeWord</KeyboardFlags>
        </x:Arguments>
    </Keyboard>
</Entry.Keyboard>

大写字
以下是官方文件:

以下是所有受支持的标志:

  • 无–未向键盘添加任何功能
  • 大写句子–表示每个输入句子的第一个单词的第一个字母将自动大写
  • 拼写检查–表示将对输入的文本执行拼写检查
  • 建议–表示将在输入的文本中提供单词补全
  • 大写字–表示每个字的第一个字母将自动大写
  • CapitalizeCharacter–表示每个字符都将自动大写
  • CapitalizeNone–表示不会发生自动资本化
  • All–表示输入的文本将进行拼写检查、单词补全和句子大写

现在,您可以使用创建方法工厂修改键盘行为,如下所示:

<Entry Placeholder="Enter text here">
<Entry.Keyboard>
    <Keyboard x:FactoryMethod="Create">
        <x:Arguments>
            <KeyboardFlags>CapitalizeWord</KeyboardFlags>
        </x:Arguments>
    </Keyboard>
</Entry.Keyboard>

大写字
以下是官方文件:

以下是所有受支持的标志:

  • 无–未向键盘添加任何功能
  • 大写句子–表示每个输入句子的第一个单词的第一个字母将自动大写
  • 拼写检查–表示将对输入的文本执行拼写检查
  • 建议–表示将在输入的文本中提供单词补全
  • 大写字–表示每个字的第一个字母将自动大写
  • CapitalizeCharacter–表示每个字符都将自动大写
  • CapitalizeNone–表示不会发生自动资本化
  • All–表示输入的文本将进行拼写检查、单词补全和句子大写
[assembly: ResolutionGroupName("Sushi")]
[assembly: ExportEffect(typeof(CapsEntrytEffect), "CapsEntrytEffect")]
<Entry Placeholder="Enter text here">
<Entry.Keyboard>
    <Keyboard x:FactoryMethod="Create">
        <x:Arguments>
            <KeyboardFlags>CapitalizeWord</KeyboardFlags>
        </x:Arguments>
    </Keyboard>
</Entry.Keyboard>