如何删除SearchBar的边框或边框颜色?

时间:2016-04-21 12:58:25

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

我是Xamarin.forms的新手。我使用 SearchBar ,然后使用 BoxView

我面临的问题是删除SearchBar的边框线。

enter image description here

此边框使UI看起来好像在SearchBar和BoxView之间有一个分隔符。

非常感谢任何帮助实现这一目标。

非常感谢:)

3 个答案:

答案 0 :(得分:0)

认为您可能需要一个自定义渲染器,如下所示:

using MonoTouch.UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly:ExportRenderer( typeof(NamespaceOfApp.MySearchBar), typeof(NamespaceOfApp.iOS.SearchBarWithNoBarRenderer_iOS))]

namespace NamespaceOfApp.iOS
{
    public class SearchBarWithNoBarRenderer_iOS : SearchBarRenderer
    {
        protected override void OnElementChanged( ElementChangedEventArgs<SearchBar> args )
        {
            base.OnElementChanged( args );

            UISearchBar bar = (UISearchBar)this.Control;
            //set background to empty image
            bar.SetBackgroundImage (new UIImage (), UIBarPosition.TopAttached, UIBarMetrics.Default);
        }
    }
}

如果您需要使用自定义渲染器,请查看here

答案 1 :(得分:0)

效果在Forms v2中引入,作为扩展Forms基本控件的推荐方法。 https://developer.xamarin.com/guides/xamarin-forms/effects/

例如;这将是你的iOS效果代码...

using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly:ResolutionGroupName ("MyCompany")]
[assembly:ExportEffect (typeof(FocusEffect), "FocusEffect")]
namespace EffectsDemo.iOS
{
    public class FocusEffect : PlatformEffect
    {
        protected override void OnAttached ()
        {
            // your code here        
        }

        protected override void OnDetached ()
        {
            // your code here        
        }

        protected override void OnElementPropertyChanged (PropertyChangedEventArgs args)
        {
            base.OnElementPropertyChanged (args);
            // your code here        
        }
    }
}

自定义渲染器是Forms v1.x中的唯一选项。自定义渲染器非常适合从头开始构建控件,但在扩展内置控件时有点受欢迎。

答案 2 :(得分:0)

使用StoryBoard:

enter image description here

使用代码:

public override void ViewWillLayoutSubviews ()
        {
            base.ViewWillLayoutSubviews ();
            sampleSearchBar.SearchBarStyle = UISearchBarStyle.Minimal;
            sampleSearchBar.BarTintColor =  UIColor.Clear;

        }