如何制作圆角入口控制Xamarin.Forms

时间:2016-06-02 06:14:39

标签: xamarin xamarin.ios xamarin.android xamarin.forms

我必须在Xamarin.Forms中使用圆角输入,但我还没有得到任何解决方案。请帮助我解决这个问题。

Xarin.Forms Entry Control in Windows Phone

I want like this

3 个答案:

答案 0 :(得分:6)

我有完全相同的要求,并决定创建名为EntryEx的自定义控件。您可以找到源代码HERE

以下是此控件支持的函数列表。

  1. 设置边框颜色
  2. 设置边框宽度
  3. 设置角半径
  4. 您还可以设置左右填充以从左侧和右侧插入条目内容。
  5. 我为iOS和Android创建了自定义渲染器以支持此属性。 要使用该控件,请执行以下操作。

    1. EntryEx添加到您的表单项目。
    2. 为相应的项目添加了适用于iOS和Android的EntryExRenderer - 。
    3. 对于Android,您还需要添加BorderRenderer。
    4. 调整名称空间。
    5. 这就是全部。享受。

答案 1 :(得分:0)

我不确定这种方法是否存在问题,因为它看起来很简单,但没人建议。

但是我不明白为什么不能仅将Frame设置为IsClippedToBounds的{​​{1}}。这样可以为您提供内置的转角半径,然后可以根据需要进行调整。

true

我目前正在使用此解决方案,并且对我有效。

答案 2 :(得分:0)

kyurkchyan的解决方案很强大,只需将Android entryRendere中的UpdateBackground方法更改为此:

private void UpdateBackground(XEntry xEntry)
    {
        if (_renderer != null)
        {
            _renderer.Dispose();
            _renderer = null;
        }
        var oldBg = xEntry.BackgroundColor;
        xEntry.BackgroundColor = Xamarin.Forms.Color.Transparent;
        _renderer = new BorderRenderer();
        Control.SetBackground(_renderer.GetBorderBackground(xEntry.BorderColor, oldBg, xEntry.BorderWidth, xEntry.BorderRadius));

    }

它也将在Android上运行!