1

Ich bin neu in Xamarin.forms. Ich verwende eine SearchBar, gefolgt von einer BoxView.Wie entferne ich die Rahmen- oder Rahmenfarbe der SearchBar?

Das Problem, mit dem ich konfrontiert bin, ist das Entfernen der Grenzlinie der SearchBar.

enter image description here

Diese Grenze macht die Benutzeroberfläche erscheint, als ob es ein Trennzeichen zwischen dem SearchBar und dem BoxView.

Jede Hilfe, um dies zu erreichen, wird sehr geschätzt.

Dank viel :)

+0

welche Plattform Sie diese sehen, auf? können Sie Ihre Xaml – user1

+0

einschließen Es sieht aus wie der graue Separator ist Ihre BoxView. Kannst du genauer sein? –

+1

@ MarioGalván Es ist nicht BoxViews Grenze. Coz, der gleiche Rand wird nicht am unteren Ende der BoxView angezeigt. Es ist nur die Grenze von SearchBar. – GJDK

Antwort

0

denken, Sie könnten für diese wie so eine benutzerdefinierte Renderer benötigen:

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

Wenn Sie eine Hand benötigen mit benutzerdefinierten Renderer here aussehen

+0

Großartig !!!! @LainSmith ... der Vorschlag ist sehr bemerkenswert ... aber ich suche nach der Lösung, indem ich keine Renderer verwende. Wenn das die einzige verbleibende Option ist, werde ich dafür gehen. – GJDK

0

Effekte in Formen eingeführt wurde v2 als empfohlene Methode zum Erweitern der Forms-Basissteuerelemente. https://developer.xamarin.com/guides/xamarin-forms/effects/

Zum Beispiel; Dies wäre Ihr iOS-Effektcode ...

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

Benutzerdefinierte Renderer waren die einzige Option in Forms v1.x. Custom-Renderer eignen sich hervorragend zum Erstellen von Steuerelementen von Grund auf, aber es war ein wenig erfolglos, wenn die integrierten Steuerelemente erweitert wurden.

0

Mit Storyboard:

enter image description here

Mit Code:

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

     } 
+0

Schön !! @Alvin George .... Im Moment entwerfe ich die Benutzeroberfläche, die für iOS und Android freigegeben wird. Ich glaube, Ihre Antwort könnte mir helfen, wenn Sie Storyboard verwenden und die Benutzeroberfläche nur für iOS-Geräte. – GJDK