Xamarin表单无法获得菜单页来显示颜色

时间:2019-03-12 15:38:18

标签: c# xamarin xamarin.forms

当我的应用加载时,TitleView BackgroundColor在menu.png图标之后开始。我只能在选择其中一个设置了detailPage.BarBackgroundColor的菜单项之一后才能使其工作。

  

反正在mainpage.xml或menupage.xaml中设置此颜色吗?

Add Color to the menu.png

Mainpage.xaml     

    <pages:MenuPage x:Name="menuPage"/>
</MasterDetailPage.Master>

<MasterDetailPage.Detail>
    <NavigationPage BackgroundColor="#22335c">
        <x:Arguments>
            <pages:HomePage />
        </x:Arguments>
    </NavigationPage>
</MasterDetailPage.Detail>

Mainpage.xaml.cs 这只会设置颜色

var detailPage = new NavigationPage((Page)Activator.CreateInstance(item.TargetType));
detailPage.BarBackgroundColor = Color.FromHex("#22335c");

MenuPage.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Pages.MenuPage"
             xmlns:telerikPrimitives="clr-namespace:Telerik.XamarinForms.Primitives;assembly=Telerik.XamarinForms.Primitives"
             xmlns:telerik="clr-namespace:Telerik.XamarinForms.DataControls;assembly=Telerik.XamarinForms.DataControls"
             xmlns:model="clr-Model"
             xmlns:page="clr-Pages"
             Title="Menu"  Icon="menu.png" BackgroundColor="#22335c" >
    <Grid>

homepage.xaml

<NavigationPage.TitleView>
    <StackLayout Orientation="Horizontal" BackgroundColor="#22335c" >
        <Label Text="App" HorizontalOptions="FillAndExpand" VerticalOptions="CenterAndExpand" BackgroundColor="#22335c" TextColor="White" HorizontalTextAlignment="Center"  />
    </StackLayout>
</NavigationPage.TitleView>

1 个答案:

答案 0 :(得分:1)

首先,如果您想要白色背景,请尝试使用此代码

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Pages.MenuPage"
             xmlns:telerikPrimitives="clr-namespace:Telerik.XamarinForms.Primitives;assembly=Telerik.XamarinForms.Primitives"
             xmlns:telerik="clr-namespace:Telerik.XamarinForms.DataControls;assembly=Telerik.XamarinForms.DataControls"
             xmlns:model="clr-Model"
             xmlns:page="clr-Pages"
             Title="Menu"  Icon="menu.png" BackgroundColor="#FFFFFF" >

或使用它:

<NavigationPage.TitleView>
    <StackLayout Orientation="Horizontal" BackgroundColor="#FFFFFF" >
        <Label Text="App" HorizontalOptions="FillAndExpand" VerticalOptions="CenterAndExpand" BackgroundColor="#22335c" TextColor="White" HorizontalTextAlignment="Center"  />
    </StackLayout>
</NavigationPage.TitleView>

我更喜欢使用它:

  MainPage = new NavigationPage (new MainView()) { BarBackgroundColor = Color.White, BarTextColor = Color.NavyBlue };

如果要重叠2个蓝色提示,请尝试使用无背景的图标。例如以SVG图形为例,然后使用绘画将其转换为png。

此图为您提供了一个示例: Figure without background link

Figure Sample

致谢