xamarin.forms - 如何使用 xamarin 表单从条目控件中删除边框
解决方案
您无法通过 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;
}
}
首先,通过设置本机控件的theLeftView
和 the ,向控件添加了一些填充(否则看起来很丑) 。RightView
无论如何,更有趣的部分是BorderStyle
通过设置本机控件的此属性,您可以删除控件的边框。
您要做的最后一件事是说 Xamarin.Forms 以使用该渲染器。在文件的全局范围内(在命名空间声明之外)使用以下属性:
[assembly: ExportRenderer(typeof(Entry), typeof(CustomEntryRenderer))]
如果您不希望将样式应用于所有条目,则必须定义一个CustomEntry
派生自Entry
Xamarin.Forms 项目的类,将上面显示的行更改为
[assembly: ExportRenderer(typeof(CustomEntry), typeof(CustomEntryRenderer))]
请注意:这是 iOS 的实现,但对于 Android 来说基本上是一样的。
推荐阅读
- outlook-restapi - 从没有“发件人”或“发件人”字段的 Outlook 邮件 REST API 获得消息响应
- javascript - 如何将数组的列从数组传递到对象字段
- docker - 在 Cakephp 2 database.php 中使用环境变量
- javascript - 如何使用 HTML2Canvas 捕获带有 oveflow 集的 SVG?
- selenium - 无法点击打开菜单的链接
- scala - 如何使用 Scala 将 CSV 中的值分配给单个变量
- c# - 如果它为零,则比较十进制忽略精度
- ios - UICollectionView 未从 SDWebImage 加载图像
- python - 抓取后选择部分html
- cookies - 以新方式扩展在后台页面和 Safari 之间共享 cookie