Xamarin.Forms:如何设置NavigationPage栏的背景图片

时间:2017-07-05 23:27:07

标签: c# user-interface xamarin xamarin.forms

我正在构建一个Xamarin.Forms应用程序,我需要将导航栏的背景设置为图像。这可能不创造超级自定义的东西吗?如果没有,最好的方法是什么?还有其他人已经做过吗?

这就是我需要做的事情。请注意导航栏区域,其中包含后退按钮,消息图标和“COMMENTARY”文本。

enter image description here

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

使用xamarin无法更改导航背景图像。你必须以原生为每个平台做到这一点。

  1. Android:
  2. 在Ressources / layout / Toolbar.axml中删除背景颜色并添加:

    android:background="@drawable/yourImage"
    

    2。的iOS

    在AppDelegate.cs中

    添加:

    UINavigationBar.Appearance.BarTintColor=UIColor.FromPatternImage(UIImage.FromFile("YOURIMAGE.png"));
    // To change Text Colors to white here
    UINavigationBar.Appearance.TintColor=UIColor.White;
    // To change Title Text colors to white here
    UINavigationBar.Appearance.SetTitleTextAttributes(new UITextAttributes() { TextColor = UIColor.White});
    
    1. 图片
    2. 不要忘记将图片放在不同的资源文件夹中。

      希望这对你有所帮助!

答案 1 :(得分:0)

您可以在导航栏中添加背景图像和按钮。元素可用于自定义元素。您可以使用AbsoluteLayout实现所需的功能(按钮,文本...等)

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 xmlns:d="http://xamarin.com/schemas/2014/forms/design"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                 mc:Ignorable="d"                 
                 x:Class="MobileApp.Views.PhotoUploadPage">
   <NavigationPage.TitleView>
        <StackLayout>
            <Image Source="background_image.jpg"></Image>
        </StackLayout>
   </NavigationPage.TitleView>
   <ContentPage.Content>
           <StackLayout>
                <Label Text="Welcome to Multiple Photo Upload!"
                   VerticalOptions="CenterAndExpand" 
                   HorizontalOptions="CenterAndExpand" />
           </StackLayout>
   </ContentPage.Content>
</ContentPage>

https://forums.xamarin.com/discussion/139894/putting-an-image-on-navigation-bar