| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- using System;
 
- using Xamarin.Forms;
 
- using Xamarin.Forms.Platform.iOS;
 
- using UIKit;
 
- using System.Linq;
 
- using CoreGraphics;
 
- using System.Collections.Generic;
 
- using System.Windows.Input;
 
- // [assembly: Xamarin.Forms.ExportRenderer(typeof(ContentPage), typeof(InABox.Mobile.DropDownMenuRenderer))]
 
- namespace InABox.Mobile
 
- {
 
-     public class DropDownMenuRenderer : PageRenderer
 
-     {
 
-         //I used UITableView for showing the menulist of secondary toolbar items.
 
-         List<ToolbarItem> _secondaryItems;
 
-         UITableView table;
 
-         protected override void OnElementChanged(VisualElementChangedEventArgs e)
 
-         {
 
-             //Get all secondary toolbar items and fill it to the gloabal list variable and remove from the content page.
 
-             if (e.NewElement is ContentPage page)
 
-             {
 
-                 _secondaryItems = page.ToolbarItems.Where(i => i.Order == ToolbarItemOrder.Secondary).ToList();
 
-                 _secondaryItems.ForEach(t => page.ToolbarItems.Remove(t));
 
-             }
 
-             base.OnElementChanged(e);
 
-         }
 
-         public override void ViewWillAppear(bool animated)
 
-         {
 
-             var element = (ContentPage)Element;
 
-             //If global secondary toolbar items are not null, I created and added a primary toolbar item with image(Overflow) I         
 
-             // want to show.
 
-             if (_secondaryItems != null && _secondaryItems.Count > 0)
 
-             {
 
-                 element.ToolbarItems.Clear();
 
-                 element.ToolbarItems.Add(new ToolbarItem()
 
-                 {
 
-                     Order = ToolbarItemOrder.Primary,
 
-                     Text = "Tools",
 
-                     //Icon = "more.png",
 
-                     Priority = 1,
 
-                     Command = new Command(() =>
 
-                     {
 
-                         ToolClicked();
 
-                     })
 
-                 });
 
-             }
 
-             base.ViewWillAppear(animated);
 
-         }
 
-         //Create a table instance and added it to the view.
 
-         private void ToolClicked()
 
-         {
 
-             if (table == null)
 
-             {
 
-                 var items = _secondaryItems.Where(x => (!(x is HideableToolbarItem)) || (((HideableToolbarItem)x).IsVisible)).ToList();
 
-                 //Set the table position to right side. and set height to the content height.
 
-                 var childRect = new CGRect((float)View.Bounds.Width - 250, 0, 250, items.Count() * 56);
 
-                 table = new UITableView(childRect)
 
-                 {
 
-                     Source = new DropDownMenuSource(items) 
 
-                 };
 
-                 Add(table);
 
-                 return;
 
-             }
 
-             foreach (var subview in View.Subviews)
 
-             {
 
-                 if (subview == table)
 
-                 {
 
-                     table.RemoveFromSuperview();
 
-                     return;
 
-                 }
 
-             }
 
-             Add(table);
 
-         }
 
-     }
 
- }
 
 
  |