Xamarin表单 - IOS - 汉堡菜单标题颜色与状态栏不同

时间:2018-04-23 11:47:17

标签: android ios xamarin.forms hamburger-menu

我在Xamarin Forms App中添加了一个汉堡包菜单。问题是,对于IOS设备,当单击菜单时,状态栏颜色不会像菜单标题颜色那样改变,就像Android一样。下面是图片,看看差异。

这是主页:

<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 x:Class="MyProject.UI.Pages.Menu.MainPage"
                 xmlns:pages="clr-namespace:MyProject.UI.Pages.Menu"
                 xmlns:calendar="clr-namespace:MyProject.UI.Pages.Calendar;assembly=MyProject"
                 Title="Main">
        <MasterDetailPage.Master>
            <pages:HamburgerMenu x:Name="MasterPage" />
        </MasterDetailPage.Master>
        <MasterDetailPage.Detail>
            <NavigationPage>
                <x:Arguments>
                    <calendar:CalendarPage />
                </x:Arguments>
            </NavigationPage>
        </MasterDetailPage.Detail>
    </MasterDetailPage>

IOS Hamburger menuAndroid Hamburger menu

1 个答案:

答案 0 :(得分:2)

对于Android来说,它是Statusbar默认显示的默认颜色,你可以在Styles.xml文件夹下的Resources文件中找到var statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView; if (statusBar.RespondsToSelector(new ObjCRuntime.Selector("setBackgroundColor:"))) { statusBar.BackgroundColor = UIColor.FromRGB(66, 134, 244); statusBar.TintColor = UIColor.White; }

您可以手动更改iOS的状态栏颜色:
在LoadApplication

之前,将此代码写入AppDelegate.cs文件中
MailMessage email = new MailMessage();
...
MimeKit.MimeMessage mimeMessage = MimeKit.MimeMessage.CreateFromMailMessage(email);

希望这能解决您的问题。