в Visual Studio 2019, как настроить панель навигации в каждом представлении (не глобально) - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу настроить панель навигации для одного вида (опять же, не глобально, только для этого вида). У меня есть поиск по inte rnet и я нашел только, как настроить его глобально из файла app.xaml.

Я пытался кодировать, как показано ниже, в моем файле view.xaml

    <ContentPage.Resources>
        <ResourceDictionary>
            <Style TargetType="NavigationPage">
                <Setter Property="BarBackgroundColor"
                        Value="{StaticResource blackColor}"/>
                <Setter Property="BarTextColor"
                        Value="{StaticResource whiteColor}"/>

            </Style>

        </ResourceDictionary>

    </ContentPage.Resources>

, но он не работает в отличие от того, когда я стилизую другой элемент, такой как записи / кнопки

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

NavigationPage.TitleView Этот тег поможет вам настроить панель навигации.

0 голосов
/ 27 февраля 2020

Что касается Style, если для Key не установлено значение, то стиль применяется ко всем объектам типа TargetType.

В вашем App.Xaml установите стиль с помощью x:Key

<Style TargetType="ContentPage" x:Key="specialPage">
    <Setter Property="BackgroundColor" Value="Green"/>
</Style>

На вашей странице ContentPage

<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    Style="{StaticResource Key=specialPage}"

Как видите, этот стиль предназначен для ContentPage поскольку NavigationApp устанавливается только один раз для приложения, вы можете установить свойство NavigationBar в стиле ContentPage.

Итак,

1) Вы можете сохранить NavigationPage stati c и использовать его c переменная для изменения свойства NavigationPage

App.Xaml.cs

public static App CurrentApplication;
public NavigationPage AppNavigationPage;

public App()
{
    InitializeComponent();
    CurrentApplication = this;
    this.AppNavigationPage = new NavigationPage(new MainPage());
    MainPage = this.AppNavigationPage;
}

Page.Xaml.cs

public Page1()
{
    InitializeComponent();
    App.CurrentApplication.AppNavigationPage.BarBackgroundColor = Color.Red;
}

2) Используйте ресурс Dynami c для стилизации NavigationPage

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...