在我的Xamarin.Forms项目中,按钮文本始终以大写格式显示。
但是我在XAML中提供了大写和小写字母。当我构建解决方案时,所有字母都会变成大写。
但是我在XAML中提供了大写和小写字母。当我构建解决方案时,所有字母都会变成大写。
我猜您在Android上看到了这个,因为它是按钮文本的默认值,自Lollipop以来就是如此。
要更改此行为,请将以下内容添加到styles.xml文件中,该文件可以在Android项目的资源资源文件夹下找到。
<item name="android:textAllCaps">false</item>
另一种方法是简单地使用TextTransform
属性:
<Button Text="Click Me" TextTransform="None"/>
或者在样式定义中:
<Style TargetType="Button" x:Key="NoDefaultCapsButton">
<Setter Property="TextTransform" Value="None"/>
</Style>
<Button Text="Click Me" Style="{x:StaticResource NoDefaultCapsButton}"/>
请确保使用的是Xamarin.Forms NuGet包4.8.0.1534或更高版本,如果TextTransform
未显示,则清理并重新构建您的解决方案。
Android Q 10.0
。这是我们使用版本之间唯一的区别。 - Cfun接受的答案假设用户(即使是新手)知道上面的代码应该放在哪个样式中。即使是下面已接受的答案的评论仍然没有被回答...我想知道为什么...
我刚开始学习Android Xamarin编程,花了大约20分钟才弄明白它。对于任何用户,尤其是新手,请参考此示例。
在您的Android项目中,进入 Resources
&gt; values
&gt; 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>
截图:
最近我遇到了同样的问题,尽管我在样式中使用了textAllCaps false。看起来它与Xamarin.Forms的prerlease版本4.8.0.1238-pre3不兼容(发布本文时为最新版本)。但在Xamarin.Forms 4.7.0.1239版本中可以正常工作。
针对在 Android 和 iOS 上遇到的问题,当 Visual 设置为 "Material" 时,避免自动转换为大写字母的解决方案。
Xamarin.Forms.Android:
<style name="MainTheme" parent="MainTheme.Base">
<item name="android:textAllCaps">false</item>
</style>
Xamarin.Forms.iOS:
[assembly: ExportRenderer(typeof(Button), typeof(ButtonRendererEx), new[] { typeof(VisualMarker.MaterialVisual) })]
namespace GettingStarted.iOS
{
public class ButtonRendererEx : MaterialButtonRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.UppercaseTitle = false;
}
}
}
}
<style name="MainTheme" parent="MainTheme.Base"><item name="android:textAllCaps">false</item></style>
。但它不起作用..! - Rohit Sharma