如何使用xamarin.forms删除android中datepicker的底线
我在我的xamarin.forms应用程序中使用DatePicker控件,它显示了android设备中日期选择器的底线,但我不想要这条底线。我如何删除该行 我尝试使用一些自定义渲染来删除线条,但它不起作用。我尝试应用的渲染器是:如何使用xamarin.forms删除android中datepicker的底线,xamarin.forms,react-native-android,Xamarin.forms,React Native Android,我在我的xamarin.forms应用程序中使用DatePicker控件,它显示了android设备中日期选择器的底线,但我不想要这条底线。我如何删除该行 我尝试使用一些自定义渲染来删除线条,但它不起作用。我尝试应用的渲染器是: public class BorderlessDatePickerRenderer:DatePickerRenderer { protected override void OnElementChanged(ElementChangedEventArgs<
public class BorderlessDatePickerRenderer:DatePickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
Control.Background = null;
var layoutParams = new MarginLayoutParams(Control.LayoutParameters);
layoutParams.SetMargins(0, 0, 0, 0);
LayoutParameters = layoutParams;
Control.LayoutParameters = layoutParams;
Control.SetPadding(0, 0, 0, 0);
SetPadding(0, 0, 0, 0);
}
}
}
public类无边界sdatepickerrenderer:DatePickerRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(e.OldElement==null)
{
Control.Background=null;
var layoutParams=新的MarginLayoutParams(Control.layoutparames);
layoutParams.SetMargins(0,0,0,0);
LayoutParameters=layoutParams;
Control.LayoutParameters=layoutParams;
控件。设置填充(0,0,0,0);
设置填充(0,0,0,0);
}
}
}
谁能帮我一下吗
谢谢。您可以将背景设置为空,它应该可以工作:
Control.SetBackgroundResource(0);
更新:
如有疑问,请随时回复
[assembly: ExportRenderer(typeof(BorderlessDatePicker), typeof(BorderlessDatePickerRenderer))]
public class BorderlessDatePickerRenderer : DatePickerRenderer
{
public static void Init() { }
protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
Control.Background = null;
var layoutParams = new MarginLayoutParams(Control.LayoutParameters);
layoutParams.SetMargins(0, 0, 0, 0);
LayoutParameters = layoutParams;
GradientDrawable gd = new GradientDrawable();
gd.SetStroke(0, Android.Graphics.Color.LightGray);
Control.SetBackgroundDrawable(gd);
Control.LayoutParameters = layoutParams;
Control.SetPadding(0, 0, 0, 0);
SetPadding(0, 0, 0, 0);
}
}
}
[程序集:导出渲染器(typeof(BorderlessDatePicker)、typeof(BorderlessDatePickerRenderer))]
公共类无边界SDatePickerRenderer:DatePickerRenderer
{
公共静态void Init(){}
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(e.OldElement==null)
{
Control.Background=null;
var layoutParams=新的MarginLayoutParams(Control.layoutparames);
layoutParams.SetMargins(0,0,0,0);
LayoutParameters=layoutParams;
GradientDrawable gd=新的GradientDrawable();
gd.SetStroke(0,Android.Graphics.Color.LightGray);
对照组:立根拔除(gd);
Control.LayoutParameters=layoutParams;
控件。设置填充(0,0,0,0);
设置填充(0,0,0,0);
}
}
}
您可以将背景设置为空,它应该可以工作:
Control.SetBackgroundResource(0);
更新:
如有疑问,请随时回复
[assembly: ExportRenderer(typeof(BorderlessDatePicker), typeof(BorderlessDatePickerRenderer))]
public class BorderlessDatePickerRenderer : DatePickerRenderer
{
public static void Init() { }
protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
Control.Background = null;
var layoutParams = new MarginLayoutParams(Control.LayoutParameters);
layoutParams.SetMargins(0, 0, 0, 0);
LayoutParameters = layoutParams;
GradientDrawable gd = new GradientDrawable();
gd.SetStroke(0, Android.Graphics.Color.LightGray);
Control.SetBackgroundDrawable(gd);
Control.LayoutParameters = layoutParams;
Control.SetPadding(0, 0, 0, 0);
SetPadding(0, 0, 0, 0);
}
}
}
[程序集:导出渲染器(typeof(BorderlessDatePicker)、typeof(BorderlessDatePickerRenderer))]
公共类无边界SDatePickerRenderer:DatePickerRenderer
{
公共静态void Init(){}
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(e.OldElement==null)
{
Control.Background=null;
var layoutParams=新的MarginLayoutParams(Control.layoutparames);
layoutParams.SetMargins(0,0,0,0);
LayoutParameters=layoutParams;
GradientDrawable gd=新的GradientDrawable();
gd.SetStroke(0,Android.Graphics.Color.LightGray);
对照组:立根拔除(gd);
Control.LayoutParameters=layoutParams;
控件。设置填充(0,0,0,0);
设置填充(0,0,0,0);
}
}
}
您可以使用透明渐变来改变一个元素
var gd = new GradientDrawable();
gd.SetStroke(0, Android.Graphics.Color.Transparent);
Control.SetBackground(gd);
可以将透明渐变使用到OnElementChanged中
var gd = new GradientDrawable();
gd.SetStroke(0, Android.Graphics.Color.Transparent);
Control.SetBackground(gd);
,感谢您的回复。但此属性在我的案例中不起任何作用。感谢您的回复。但此属性在我的案例中不起任何作用。