问题
I am currently working with a UWP project in Xamarin Forms.
When i use the default Entry & Editor, it comes with a border that i wish to remove as well as add a rounded background.
I have setup the renderer and some code, but the border is still intact.
[assembly: ExportRenderer(typeof(Xamarin.Forms.Entry), typeof(MyRenderer))]
namespace App1.UWP
{
class MyRenderer : SearchBarRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if(Control != null)
{
Control.Background = null;
}
}
}
}
回答1:
Entry
Simply set BorderThickness
in custom renderer .
[assembly: ExportRenderer(typeof(Xamarin.Forms.Entry), typeof(MyRenderer))]
namespace App1.UWP
{
class MyRenderer : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if(Control != null)
{
Control.BorderThickness = new Windows.UI.Xaml.Thickness(0);
}
}
}
}
Editor :
It's weird that EditorRenderer of Editor
does not work (OnElementChanged not trigger) , we have to subclass Editor
and create custom renderer for the new class .
public class MyEditor : Editor
{
}
//xaml
xmlns:local="clr-namespace:App1"
<local:MyEditor/>
Custom renderer
[assembly: ExportRenderer(typeof(MyEditor), typeof(MyRenderer))]
namespace App1.UWP
{
class MyRenderer : EditorRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.BorderThickness = new Windows.UI.Xaml.Thickness(0);
}
}
}
}
来源:https://stackoverflow.com/questions/63046396/remove-borders-on-custom-entry-editor-for-xamarin-forms-uwp