Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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# 有没有办法在Xamarin表单上禁用自动资本化;条目';XAML_C#_Android_Xaml_Xamarin.ios_Xamarin.forms - Fatal编程技术网

C# 有没有办法在Xamarin表单上禁用自动资本化;条目';XAML

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

我刚刚开始在Xamarin工作,正在编写一个针对iOS和Android的应用程序。我正试图将我所有的UI设计都保存在它们之间的公共库中,我开始发现这些行有点模糊。我当前的要求是在XAML中禁用“Entry”标记对象的自动大写。这是可以通过标记实现的吗?我找不到任何支持这种行为的财产。如果没有,我应该怎么做?

您可以设置
键盘=“Text”
-默认的
键盘执行大写

还可以查看可以应用的附加键盘。这些允许您切换建议和其他内容

或者,我建议您创建一个简单的for
UITextField
,并使用本机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)};