To do this, you must write a renderer for your page
There is my implementation for iOS (with custom 'searchField')
using CoreGraphics; using Foundation; using MyControls; using MyRenderer; using UIKit; using Xamarin.Forms; [assembly: ExportRenderer(typeof(MySearchContentPage), typeof(MySearchContentPageRenderer))] namespace IOS.Renderer { using Xamarin.Forms.Platform.iOS; public class MySearchContentPageRenderer : PageRenderer { public override void ViewWillAppear(bool animated) { base.ViewWillAppear(animated); SetSearchToolbar(); } public override void WillMoveToParentViewController(UIKit.UIViewController parent) { base.WillMoveToParentViewController(parent); if (parent != null) { parent.NavigationItem.RightBarButtonItem = NavigationItem.RightBarButtonItem; parent.NavigationItem.TitleView = NavigationItem.TitleView; } } private void SetSearchToolbar() { var element = Element as MySearchContentPage; if (element == null) { return; } var width = NavigationController.NavigationBar.Frame.Width; var height = NavigationController.NavigationBar.Frame.Height; var searchBar = new UIStackView(new CGRect(0, 0, width * 0.85, height)); searchBar.Alignment = UIStackViewAlignment.Center; searchBar.Axis = UILayoutConstraintAxis.Horizontal; searchBar.Spacing = 3; var searchTextField = new MyUITextField(); searchTextField.BackgroundColor = UIColor.FromRGB(239, 239, 239); NSAttributedString strAttr = new NSAttributedString("Search", foregroundColor: UIColor.FromRGB(146, 146, 146)); searchTextField.AttributedPlaceholder = strAttr; searchTextField.SizeToFit();
There is also a discussion: How to enable viewing in the NavigationBar of Xamarin forms?

I hope you understand the main idea.
source share