【发布时间】:2020-06-25 10:37:30
【问题描述】:
我正在尝试使用新的AppThemeBinding 为 Android 实现暗模式。它适用于 Android 和 iOS,但我不知道如何为自定义渲染器或自定义样式实现它。
例如,我有一个自定义的 Stepper 渲染器,它看起来像这样:
protected override void OnElementChanged(ElementChangedEventArgs<Stepper> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Android.Widget.Button buttonDown = (Android.Widget.Button)Control.GetChildAt(0);
Android.Widget.Button buttonUp = (Android.Widget.Button)Control.GetChildAt(1);
if(e.NewElement != null)
{
//Button Down
buttonDown.SetBackgroundResource(Resource.Drawable.button_bg_left);
buttonDown.LayoutParameters = new LinearLayout.LayoutParams(DpToPixel(50), DpToPixel(33));
buttonDown.SetPadding(0,0,0,0);
buttonDown.SetTextColor(Android.Graphics.Color.ParseColor("#007bff"));
//Button Up
buttonUp.SetBackgroundResource(Resource.Drawable.button_bg_right);
buttonUp.LayoutParameters = new LinearLayout.LayoutParams(DpToPixel(50), DpToPixel(33));
buttonUp.SetPadding(0, 0, 0, 0);
buttonUp.SetTextColor(Android.Graphics.Color.ParseColor("#007bff"));
}
}
}
我正在设置一个后台资源,它是一个.xml 文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<stroke android:width="1dp" android:color="#007bff" />
<corners
android:topLeftRadius="5dp"
android:bottomLeftRadius="5dp"/>
</shape>
由于 AppThemeBinding 是一个标记扩展并在 .xaml 文件中工作,我不知道如何为我的 android 特定渲染器实现颜色更改?
我怎样才能改变我的自定义形状的颜色以用于亮/暗模式?
【问题讨论】:
标签: xamarin.forms xamarin.android