Native.Button GetToolbarButton(ToolbarButtonPosition position)
        {
            ToolbarItem item = _toolbarTracker.ToolbarItems.Where(
                i => (position == ToolbarButtonPosition.Right && i.Order <= ToolbarItemOrder.Primary) ||
                (position == ToolbarButtonPosition.Left && i.Order == ToolbarItemOrder.Secondary))
                               .OrderBy(i => i.Priority).FirstOrDefault();

            if (item == default(ToolbarItem))
            {
                return(null);
            }

            Native.Button button = new Native.Button(Forms.NativeParent);
            button.Clicked += (s, e) =>
            {
                IMenuItemController control = item;
                control.Activate();
            };
            button.Text            = item.Text;
            button.BackgroundColor = Color.Transparent.ToNative();

            if (string.IsNullOrEmpty(item.Icon))
            {
                if (string.IsNullOrEmpty(item.Text))
                {
                    // We assumed the default toolbar icon is "naviframe/drawer" if there are no icon and text.
                    button.Style = StyleDefaultToolbarIcon;
                }
                else
                {
                    if (position == ToolbarButtonPosition.Right)
                    {
                        button.Style = StyleRightToolbarButton;
                    }
                    else
                    {
                        button.Style = StyleLeftToolBarButton;
                    }
                }
            }
            else
            {
                Native.Image iconImage = new Native.Image(Forms.NativeParent);
                var          task      = iconImage.LoadFromImageSourceAsync(item.Icon);
                button.Image = iconImage;
            }

            return(button);
        }
예제 #2
0
        Native.Button GetToolbarButton(ToolbarButtonPosition position)
        {
            ToolbarItem item = _toolbarTracker.ToolbarItems.Where(
                i => (position == ToolbarButtonPosition.Right && i.Order <= ToolbarItemOrder.Primary) ||
                (position == ToolbarButtonPosition.Left && i.Order == ToolbarItemOrder.Secondary))
                               .OrderBy(i => i.Priority).FirstOrDefault();

            if (item == default(ToolbarItem))
            {
                return(null);
            }

            Native.ToolbarItemButton button = new Native.ToolbarItemButton(item);
            return(button);
        }