Xamarin在Designer的预览中形成小写按钮吗? 未呈现自定义组件

问题描述

我有一个带有按钮的应用程序,该按钮的文字为“点击我”。

通过在我的xamarin表单的 resources.Android文件添加代码,将其变成小写文本。

<item name="android:textAllCaps">false</item>

它在设计器中是大写的,但是在部署时正是我想要的。但是我也希望它在设计器中为小写字母,以便我可以看到发生了什么。

设计师

enter image description here

部署 我不知道如何在手机上拍摄照片,只是将其想象成上面但小写的图像。

所以我希望它在设计器中也要小写。我该怎么做?

这在我导入自定义字体时也适用。这是我朋友而不是我的样子:

enter image description here

我也得到了这可能是问题的原因:

enter image description here

我正在寻找XAMARIN.FORMS解决方案。不自然。谢谢 谢谢,

您好,狮子座,我收到此错误

也许我将启用热重装吗?

enter image description here

解决方法

如果您查看了源代码,就会发现在主题Theme.AppCompat中,<item name="android:textAllCaps">true</item>的默认属性appcompat.widget.Button为true。

您可以编写一个CustomRenderer进行更改。

在您的Android项目中创建一个CustomButtonRenderer,然后SetAllCaps(false)

[assembly: ExportRenderer(typeof(Xamarin.Forms.Button),typeof(CustomButtonRenderer))]
namespace your namepace
{
  class CustomButtonRenderer :ButtonRenderer
  {
     public CustomButtonRenderer(Context context):base(context)
     {

     }


     protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Button> e)
      {
        base.OnElementChanged(e);
        if (Control != null)
        {
            Control.SetAllCaps(false);
        }
    }
  }
}

更新

<Button WidthRequest="100" Text="Login" />

在使用customrenderer之前

enter image description here

使用customrenderer之后

enter image description here