在Xamarin.Forms PCL XAML页面中禁用自动完成
我有一个PCL,它将我的MVVM页面存储在XAML中。我在XAML文件中有以下内容,但我想禁用键盘上的自动完成功能。有人知道我如何在XAML中做到这一点吗在Xamarin.Forms PCL XAML页面中禁用自动完成,xaml,mvvm,portable-class-library,xamarin.forms,Xaml,Mvvm,Portable Class Library,Xamarin.forms,我有一个PCL,它将我的MVVM页面存储在XAML中。我在XAML文件中有以下内容,但我想禁用键盘上的自动完成功能。有人知道我如何在XAML中做到这一点吗 <Entry Text="{Binding Code}" Placeholder="Code" /> 表单支持一个枚举,我认为它是用来控制这种行为的,但它似乎没有很好的文档记录。键盘标志应该可以做到这一点,比如: MyEntry.Keyboard = Keyboard.Create(KeyboardFlags.Capitaliz
<Entry Text="{Binding Code}" Placeholder="Code" />
表单支持一个枚举,我认为它是用来控制这种行为的,但它似乎没有很好的文档记录。键盘标志应该可以做到这一点,比如:
MyEntry.Keyboard = Keyboard.Create(KeyboardFlags.CapitalizeSentence | KeyboardFlags.Spellcheck);
虽然已经有了答案,但我想我应该进一步阐述一下XAML中的用法 与代码隐藏不同,您不能创建要使用的键盘类的新实例,但有一种方法。希望您已经在App.cs上安装了xaml(删除它,然后创建App.xaml和App.xaml.cs),这样您就不必检查Resources属性是否已经初始化 下一步是重写OnStart()方法,并为您使用的各种键盘添加适当的条目。我通常使用三种键盘:数字键盘、电子邮件键盘和文本键盘。另一个有用的是Url键盘,但您可以用同样的方法添加它。 这个小代码将使键盘作为静态资源可用。要在XAML中使用它们,只需执行以下操作:
<Entry x:Name="emailEntry" Text="{Binding EMail}" Keyboard="{StaticResource KeyboardEmail}" />
瞧,您的条目现在有了一个电子邮件键盘。自定义
键盘
实例可以使用x:FactoryMethod
属性在XAML中创建。您想要的可以通过以下标记实现:
<Entry Text="{Binding Code}" Placeholder="Code">
<Entry.Keyboard>
<Keyboard x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>None</KeyboardFlags>
</x:Arguments>
</Keyboard>
</Entry.Keyboard>
</Entry>
当您不需要自定义键盘时,可以利用x:Static
属性使用:
<Entry Placeholder="Phone" Keyboard="{x:Static Keyboard.Telephone}" />
我知道这是一个旧线程,但我找到了一种在样式中实现这一点的方法
我在我的App.xaml
中的ResourceDictionary
中定义了我的所有样式。在那里,我可以做以下事情:
然后像这样使用它:
但是,如果我想设置键盘标志
,该怎么办?好吧,我在App.xaml.cs中使用了一些代码和一个简单的绑定。首先,在myApp.xaml的顶部:
然后我的样式在同一个App.xaml中的位置:
最后,在我的App.xaml.cs
code-behind中:
公用键盘键盘文本
=>Keyboard.Create(KeyboardFlags.CapitalizeNone | KeyboardFlags.拼写检查);
而且,如果需要,我可以在代码隐藏中创建其他类似属性,用于其他样式。某种程度上,是的。您必须以编程方式在App.OnStart中创建资源,并通过绑定以StaticResource的形式访问它们。我将在稍后添加答案。@Julien请参阅我的答案,了解如何仅使用XAML创建自定义键盘。不需要为静态成员创建资源。有关x:Static
属性的详细信息,请参见我的答案。@本页文档似乎尚未更新,但现在有一个None
成员。如果能将其融入到一种风格中,那该多好啊?
<KeyboardFlags>CapitalizeSentence,Spellcheck</KeyboardFlags>
<Entry Placeholder="Phone" Keyboard="{x:Static Keyboard.Telephone}" />