Xamarin表单:按钮文本始终以大写字母显示

Sre*_*ree 12 xamarin.forms

亲爱,

在我的xamarin表单中,项目按钮文本始终以大写格式显示.但我在xaml中提供大写和小写字母.当我构建解决方案时,所有字母都变为大写.

任何解决方案 提前致谢.

Ste*_*rne 28

我猜你在Android上看到这个,因为它是按钮文本的默认值,并且自从棒棒糖以来就一直存在.

要更改此行为,请将以下内容添加到styles.xml文件中,该文件可以在Resources then values文件夹下的Android项目中找到

<item name="android:textAllCaps">false</item>
Run Code Online (Sandbox Code Playgroud)

  • 我的项目中也有相同的代码,例如:`&lt;style name="MainTheme" parent="MainTheme.Base"&gt;&lt;item name="android:textAllCaps"&gt;false&lt;/item&gt;&lt;/style&gt;`。但它不工作..! (4认同)
  • 我认为此评论是使用按钮属性 TextTransform 的实际答案 https://github.com/xamarin/Xamarin.Forms/issues/11556#issuecomment-670677728 (3认同)

Sid*_*out 11

接受的答案假定用户(甚至是新手)知道上面的代码采用哪种风格。即使接受的答案下面的评论也没有得到答复......我想知道为什么......

我刚开始学习 Android Xamarin 编程,我花了 20 分钟才弄明白。对于任何用户,特别是新手,请参阅此示例。

在你的Android项目,去Resources> values>styles.xml并添加:

<style name="MyTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:textAppearanceButton">@style/mybutton.text</item>
</style>

<style name="mybutton.text" parent="Base.TextAppearance.AppCompat.Button">
    <item name="android:textAllCaps">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

截屏:


Cfu*_*fun 11

另一种方法是简单地使用TextTransform属性:

<Button Text="Click Me" TextTransform="None"/>
Run Code Online (Sandbox Code Playgroud)

或者在样式定义中:

<Style TargetType="Button" x:Key="NoDefaultCapsButton">
     <Setter Property="TextTransform" Value="None"/>
</Style>

<Button Text="Click Me" Style="{x:StaticResource NoDefaultCapsButton}"/>
Run Code Online (Sandbox Code Playgroud)

重要的提示

请确保您使用的是 Xamarin.Forms NuGet 包4.8.0.1534或更高版本,如果TextTransform未显示,则清理并重建您的解决方案。


小智 7

最近我遇到了同样的问题,即使我在我的样式中使用 textAllCaps false 。似乎它不适用于 Xamarin.Forms 的预发布版本 4.8.0.1238-pre3(在发布此内容时可用)。它适用于 Xamarin.Forms 的 4.7.0.1239 版。