【问题标题】:Remove borders on custom Entry & Editor for Xamarin Forms UWP删除 Xamarin Forms UWP 的自定义条目和编辑器上的边框
【发布时间】:2020-11-12 17:10:27
【问题描述】:

我目前正在使用 Xamarin Forms 中的 UWP 项目。

当我使用默认的条目和编辑器时,它带有我希望删除的边框以及添加圆形背景。

我已经设置了渲染器和一些代码,但边框仍然完好无损。

[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;
        }
    }
}

}

【问题讨论】:

  • 您可以设置 BorderThickness = "0" 和 TextControlBorderBrush 为Transparent。

标签: xamarin xamarin.forms


【解决方案1】:

条目

只需在自定义渲染器中设置BorderThickness。

[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 的 EditorRenderer 不起作用(OnElementChanged 未触发),我们必须继承 Editor 并为新类创建自定义渲染器。

形式
public class MyEditor : Editor
{

}


//xaml

xmlns:local="clr-namespace:App1"
<local:MyEditor/>
自定义渲染器
[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);
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 2018-12-04
    • 2016-09-03
    • 2018-02-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 2020-04-15
    相关资源
    最近更新 更多