C# 有没有办法在Xamarin表单上禁用自动资本化;条目';XAML
我刚刚开始在Xamarin工作,正在编写一个针对iOS和Android的应用程序。我正试图将我所有的UI设计都保存在它们之间的公共库中,我开始发现这些行有点模糊。我当前的要求是在XAML中禁用“Entry”标记对象的自动大写。这是可以通过标记实现的吗?我找不到任何支持这种行为的财产。如果没有,我应该怎么做?您可以设置C# 有没有办法在Xamarin表单上禁用自动资本化;条目';XAML,c#,android,xaml,xamarin.ios,xamarin.forms,C#,Android,Xaml,Xamarin.ios,Xamarin.forms,我刚刚开始在Xamarin工作,正在编写一个针对iOS和Android的应用程序。我正试图将我所有的UI设计都保存在它们之间的公共库中,我开始发现这些行有点模糊。我当前的要求是在XAML中禁用“Entry”标记对象的自动大写。这是可以通过标记实现的吗?我找不到任何支持这种行为的财产。如果没有,我应该怎么做?您可以设置键盘=“Text”-默认的键盘执行大写 还可以查看可以应用的附加键盘。这些允许您切换建议和其他内容 或者,我建议您创建一个简单的forUITextField,并使用本机iOS API
键盘=“Text”
-默认的键盘执行大写
还可以查看可以应用的附加键盘。这些允许您切换建议和其他内容
或者,我建议您创建一个简单的forUITextField
,并使用本机iOS API设置所需的标志(AutocapitalizationType=UITextAutocapitalizationType.None;
)
我们还讨论了如何创建自定义渲染器来实现这一目标,但由于引入了效果,这似乎有点过头了。如果您计划在多个页面中使用此键盘,您将需要向应用程序添加以下代码。xaml的ResourceDictionary
。如果您希望在多个位置使用它,但仅在单个ContentPage
中使用,则需要将其添加到ContentPage
的ResourceDictionary
。否则,您可以直接将其添加到条目中
有关可用的KeyboardFlag
值,请参见。我只是在使用下面的None
如果添加到资源字典
:
<ContentPage.Resources>
<ResourceDictionary>
<Keyboard x:Key="NoCapitalizationKeyboard"
x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>None</KeyboardFlags>
</x:Arguments>
</Keyboard>
</ResourceDictionary>
</ContentPage.Resources>
<Entry Keyboard="{StaticResource NoCapitalizationKeyboard}" />
<Entry>
<Entry.Keyboard>
<Keyboard x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>None</KeyboardFlags>
</x:Arguments>
</Keyboard>
</Entry.Keyboard>
</Entry>
有一种变通方法可以使用不带大写字母的条目,例如“用户名”。为此,您可以简单地使用
最后,您将获得一个非自动资本化条目,如果需要,您也可以将其用作电子邮件文本。有点晚了,但现在有一种简单的方法可以获得无标志的普通键盘:
<Entry
FontSize="Small"
Keyboard="Plain"
Text="Text"/>
文档。无论是在仿真器中还是在Android设备中,当我创建一个新的条目并在其中键入时,如果xaml属性中的第一个字母没有大写,就会发生这种情况。您是否可以指定特定的条目。键盘
或条目
上的键盘标志
?直接或可能通过样式/基类?下面应该强制该条目自动大写,但我不认为它在没有该标志的情况下做到了:newentry{Keyboard=Keyboard.Create(KeyboardFlags.capitalizesensume)}代码>()我正在使用xaml创建我的Entry实例,标记是完全裸露的,因此只列出了一个。我可以通过键盘访问属性条目,但我看不到任何明显的内容可以放在其中,从而改变这种行为。我在iOS模拟器上运行这个。您是从XAML创建条目的吗?你在用什么模拟器?在iOS模拟器(iPhone4S8.4)上运行。您仍然可以在App.xaml
文件中定义全局条目
样式,或者在ContentPage
中定义全局条目
样式?@hvaughan3我还没有定义样式,这实际上是一个开箱即用的xaml页面,本地文件或应用程序资源中没有定义任何内容。我尝试将键盘设置为“文本”,但结果对我来说是一样的-我使用的是iOS模拟器,无论何时,它都会大写第一个字母。我会读一读关于效果的书,但我想如果我必须在每个操作系统的基础上进行自定义视图或更改,我只是对我的“共享”视图为我做了些什么感到有点困惑。我肯定我错过了一些基本的东西,这是我在这个世界上的早期时光。答案的效果部分似乎暗示了一种非XAML方法,是我误读了吗?参议员提到的同一个问题,在使用Android时,无论是在模拟器上还是在真正的三星上,使用“文本”仍然大写第一个字母。要在后面的代码中做到这一点。。。条目输入=新条目{Keyboard=Keyboard.Create(KeyboardFlags.CapitalizeNone)};