gpt4 book ai didi

Xamarin Border Radius AppCompat

转载 作者:行者123 更新时间:2023-12-04 07:51:27 25 4
gpt4 key购买 nike

在项目中包含 AppCompat 时,似乎 BorderRadius 属性不起作用。

我试图创建一个像这样讨论的自定义渲染 here ,但它没有用:

namespace Xamarin.Forms
{
public class CustomButton : Button
{
public CustomButton():base()
{
}

protected override void OnParentSet()
{
base.OnParentSet();
}
}
}

在安卓项目中:
[assembly: ExportRenderer(typeof(CustomButton), typeof(CustomButtonRenderer))]
namespace CalculateurMadelin.Droid.Renderers
{
public class CustomButtonRenderer : Xamarin.Forms.Platform.Android.AppCompat.ButtonRenderer
{ }
}

最佳答案

您可以加载一个 Android drawable在您的自定义渲染器中定义 AppCompat.Button 上的背景:

[assembly: ExportRenderer(typeof(CustomButton), typeof(CustomButtonRenderer))]
namespace AppCompatRender.Droid
{
public class CustomButtonRenderer : Xamarin.Forms.Platform.Android.AppCompat.ButtonRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
Control.SetBackgroundResource(Resource.Drawable.CustomButtonBackground);
}
}
}
}

新增 Resources/Drawable与您在 SetBackgroundResource 中使用的名称相匹配(即 CustomButtonBackground.axml ),在这里我将矩形的角半径设置为 10dp :
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp" />
</shape>

enter image description here

关于Xamarin Border Radius AppCompat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37126414/

25 4 0