示例#1
0
		public static void UpdateBarBackground(this MauiToolbar nativeToolbar, Toolbar toolbar)
		{
			var barBackground = toolbar.BarBackground?.ToBrush() ?? 
				toolbar.BarBackgroundColor?.ToPlatform();

			nativeToolbar.Background = barBackground;
		}
示例#2
0
		public static void UpdateToolbarDynamicOverflowEnabled(this MauiToolbar nativeToolbar, Toolbar toolbar)
		{
			if (nativeToolbar.CommandBar == null)
				return;

			nativeToolbar.CommandBar.IsDynamicOverflowEnabled = toolbar.DynamicOverflowEnabled;
		}
示例#3
0
		public static void UpdateBackButton(this MauiToolbar nativeToolbar, Toolbar toolbar)
		{
			nativeToolbar
				.IsBackButtonVisible = (toolbar.BackButtonVisible) ? NavigationViewBackButtonVisible.Visible : NavigationViewBackButtonVisible.Collapsed;

			toolbar.Handler?.UpdateValue(nameof(Toolbar.BarBackground));
		}
        MauiToolbar GetPlatformToolbar(IElementHandler handler)
        {
            var         navView      = (RootNavigationView)GetMauiNavigationView(handler.MauiContext);
            MauiToolbar windowHeader = (MauiToolbar)navView.Header;

            return(windowHeader);
        }
示例#5
0
 public static void UpdateBarTextColor(this MauiToolbar nativeToolbar, Toolbar toolbar)
 {
     if (toolbar.BarTextColor != null)
     {
         nativeToolbar.TitleColor = toolbar.BarTextColor.ToPlatform();
     }
 }
示例#6
0
        public static void UpdateToolbarDynamicOverflowEnabled(this MauiToolbar platformToolbar, Toolbar toolbar)
        {
            if (platformToolbar.CommandBar == null)
            {
                return;
            }

            platformToolbar.CommandBar.IsDynamicOverflowEnabled = toolbar.DynamicOverflowEnabled;
        }
示例#7
0
        public static void UpdateBackButton(this MauiToolbar platformToolbar, Toolbar toolbar)
        {
            platformToolbar.IsBackEnabled =
                toolbar.BackButtonEnabled && toolbar.BackButtonVisible;

            platformToolbar
            .IsBackButtonVisible = (toolbar.BackButtonVisible) ? NavigationViewBackButtonVisible.Visible : NavigationViewBackButtonVisible.Collapsed;

            toolbar.Handler?.UpdateValue(nameof(Toolbar.BarBackground));
        }
示例#8
0
		public static void UpdateTitleIcon(this MauiToolbar nativeToolbar, Toolbar toolbar)
		{
			_ = toolbar?.Handler?.MauiContext ?? throw new ArgumentNullException(nameof(toolbar.Handler.MauiContext));
			toolbar.TitleIcon.LoadImage(toolbar.Handler.MauiContext, (result) =>
			{
				if (result != null)
				{
					nativeToolbar.TitleIconImageSource = result.Value;
					toolbar.Handler.UpdateValue(nameof(Toolbar.IconColor));
				}
				else
					nativeToolbar.TitleIconImageSource = null;
			});
		}
示例#9
0
        public static void UpdateTitleView(this MauiToolbar platformToolbar, Toolbar toolbar)
        {
            _ = toolbar.Handler?.MauiContext ?? throw new ArgumentNullException(nameof(toolbar.Handler.MauiContext));

            platformToolbar.TitleView = toolbar.TitleView?.ToPlatform(toolbar.Handler.MauiContext);

            if (toolbar.TitleView is IView view)
            {
                platformToolbar.TitleViewMargin = view.Margin.ToPlatform();
            }
            else
            {
                platformToolbar.TitleViewMargin = new UI.Xaml.Thickness(0);
            }
        }
        public bool ToolbarItemsMatch(
            IElementHandler handler,
            params ToolbarItem[] toolbarItems)
        {
            var         navView      = (RootNavigationView)GetMauiNavigationView(handler.MauiContext);
            MauiToolbar windowHeader = (MauiToolbar)navView.Header;

            Assert.Equal(toolbarItems.Length, windowHeader.CommandBar.PrimaryCommands.Count);
            for (var i = 0; i < toolbarItems.Length; i++)
            {
                ToolbarItem toolbarItem    = toolbarItems[i];
                var         primaryCommand = ((WAppBarButton)windowHeader.CommandBar.PrimaryCommands[i]);
                Assert.Equal(toolbarItem, primaryCommand.DataContext);
            }

            return(true);
        }
示例#11
0
 public static void UpdateIconColor(this MauiToolbar nativeToolbar, Toolbar toolbar)
 {
     // This property wasn't wired up in Controls
 }
示例#12
0
 public static void UpdateTitle(this MauiToolbar nativeToolbar, Toolbar toolbar)
 {
     nativeToolbar.Title = toolbar.Title;
 }
示例#13
0
 public static void UpdateBarBackground(this MauiToolbar nativeToolbar, Toolbar toolbar)
 {
     nativeToolbar.Background = toolbar.BarBackground?.ToBrush();
 }
示例#14
0
        public static void UpdateTitleView(this MauiToolbar nativeToolbar, Toolbar toolbar)
        {
            _ = toolbar.Handler?.MauiContext ?? throw new ArgumentNullException(nameof(toolbar.Handler.MauiContext));

            nativeToolbar.TitleView = toolbar.TitleView?.ToPlatform(toolbar.Handler.MauiContext);
        }
示例#15
0
 public static void UpdateIsVisible(this MauiToolbar nativeToolbar, Toolbar toolbar)
 {
     nativeToolbar.Visibility = (toolbar.IsVisible) ? UI.Xaml.Visibility.Visible : UI.Xaml.Visibility.Collapsed;
 }
示例#16
0
        public async Task MauiToolbarControlVisibilitiesToggle(string controlName)
        {
            await InvokeOnMainThreadAsync(async() =>
            {
                MauiToolbar mauiToolbar = new MauiToolbar();
                var toolbarContent      = (DependencyObject)mauiToolbar.Content;
                var control             = toolbarContent.GetDescendantByName <UIElement>(controlName);

                Assert.Equal(WVisibility.Collapsed, control.Visibility);

                switch (controlName)
                {
                case "titleIcon":
                    var tcs             = new TaskCompletionSource <bool>();
                    var fileImageSource = new Controls.FileImageSource()
                    {
                        File = "black.png"
                    };
                    fileImageSource.LoadImage(MauiContext, (result) =>
                    {
                        mauiToolbar.TitleIconImageSource = result.Value;
                        tcs.SetResult(true);
                    });

                    await tcs.Task;
                    Assert.Equal(WVisibility.Visible, control.Visibility);
                    mauiToolbar.TitleIconImageSource = null;
                    Assert.Equal(WVisibility.Collapsed, control.Visibility);
                    break;

                case "textBlockBorder":
                    mauiToolbar.Title = "text";
                    Assert.Equal(WVisibility.Visible, control.Visibility);
                    mauiToolbar.Title = "";
                    Assert.Equal(WVisibility.Collapsed, control.Visibility);
                    break;

                case "menuContent":
                    mauiToolbar.SetMenuBar(new MenuBar()
                    {
                        Items = { new MenuBarItem() }
                    });
                    Assert.Equal(WVisibility.Visible, control.Visibility);
                    mauiToolbar.SetMenuBar(new MenuBar());
                    Assert.Equal(WVisibility.Collapsed, control.Visibility);
                    mauiToolbar.SetMenuBar(new MenuBar()
                    {
                        Items = { new MenuBarItem() }
                    });
                    Assert.Equal(WVisibility.Visible, control.Visibility);
                    mauiToolbar.SetMenuBar(null);
                    Assert.Equal(WVisibility.Collapsed, control.Visibility);
                    break;

                case "titleView":
                    mauiToolbar.TitleView = "text";
                    Assert.Equal(WVisibility.Visible, control.Visibility);
                    mauiToolbar.TitleView = null;
                    Assert.Equal(WVisibility.Collapsed, control.Visibility);
                    break;
                }
            });
        }
示例#17
0
		public static void UpdateBarBackgroundColor(this MauiToolbar nativeToolbar, Toolbar toolbar)
		{
			UpdateBarBackground(nativeToolbar, toolbar);
		}
示例#18
0
 public static void UpdateBarTextColor(this MauiToolbar platformToolbar, Toolbar toolbar)
 {
     platformToolbar.SetBarTextColor(toolbar.BarTextColor?.ToPlatform());
 }
示例#19
0
 public static void UpdateBarBackground(this MauiToolbar platformToolbar, Toolbar toolbar)
 {
     platformToolbar.Background = toolbar.BarBackground?.ToBrush();
 }
示例#20
0
 public static void UpdateTitle(this MauiToolbar platformToolbar, Toolbar toolbar)
 {
     platformToolbar.Title = toolbar.Title;
 }
示例#21
0
 public static void UpdateIconColor(this MauiToolbar platformToolbar, Toolbar toolbar)
 {
     platformToolbar.IconColor = toolbar.IconColor;
 }