如何使用以下控件的xamarin控件从输入框删除边框。
<Entry Text="" />
Run Code Online (Sandbox Code Playgroud)
目前,我在文本框上看到一个细边框,在这里看不到要删除的任何border属性。
请让我知道如何禁用此功能。
Pau*_*her 10
控件的某些属性无法通过Xamarin.Forms进行操作,因此您必须实现效果或自定义渲染器。在您的情况下,效果可能会很好,但是由于我精通自定义渲染器,因此我将向您展示如何使用自定义渲染器实现所需的功能。
您必须创建一个从EntryRenderer该重写派生的类OnElementChanged
public class CustomEntryRenderer : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
this.Control.LeftView = new UIView(new CGRect(0, 0, 8, this.Control.Frame.Height));
this.Control.RightView = new UIView(new CGRect(0, 0, 8, this.Control.Frame.Height));
this.Control.LeftViewMode = UITextFieldViewMode.Always;
this.Control.RightViewMode = UITextFieldViewMode.Always;
this.Control.BorderStyle = UITextBorderStyle.None;
this.Element.HeightRequest = 30;
}
}
Run Code Online (Sandbox Code Playgroud)
首先,通过设置本机控件的LeftView和来向控件添加一些填充(否则看起来很难看)RightView。无论如何,更有趣的部分是BorderStyle通过设置本机控件的此属性,您可以删除控件的边框。
您要做的最后一件事就是说Xamarin.Forms使用该渲染器。在文件的全局范围内(在名称空间声明之外)使用以下属性:
[assembly: ExportRenderer(typeof(Entry), typeof(CustomEntryRenderer))]
Run Code Online (Sandbox Code Playgroud)
如果您不想将样式应用于所有条目,则必须定义一个CustomEntry从EntryXamarin.Forms项目派生的类,将上面显示的行更改为
[assembly: ExportRenderer(typeof(CustomEntry), typeof(CustomEntryRenderer))]
Run Code Online (Sandbox Code Playgroud)
请注意:这是iOS的实现,但基本上与Android相同。
| 归档时间: |
|
| 查看次数: |
4512 次 |
| 最近记录: |