Xamarin Forms NavigationPage.TitleView RTL, содержимое исчезло - PullRequest
1 голос
/ 22 января 2020

У меня есть приложение xamarin.forms, которое поддерживает RTL, но когда я преобразую страницу в RTL, текст NavigationPage.TitleView исчезает.

Код NavigationPage.TitleView:

<NavigationPage.TitleView>
    <Label Text="{Binding Title}" Style="{StaticResource TittleLabel}" HorizontalTextAlignment="Start" HorizontalOptions="Start" VerticalOptions="CenterAndExpand"></Label>
</NavigationPage.TitleView>

Это экран результатов .

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 23 января 2020

Для RTL - метка, имеющая проблемы с RTL. Пожалуйста, найдите ссылку на проблему ниже.

https://github.com/xamarin/Xamarin.Forms/issues/3611

При установке RTL в Page, вид заголовка исчезает. Вы можете сообщить в команду Xamarin. Вместо того, чтобы устанавливать заголовок через Label, непосредственно устанавливая свойство заголовка ContentPage, как показано ниже,

<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"
             Title="RTL"
             FlowDirection="RightToLeft">

Это работает, но RTL не применяется. Но заголовок отображается. Вы также можете сообщить об этой проблеме.

0 голосов
/ 10 апреля 2020

этот подход работал для меня:

-установил RTL-FlowDirection для основного макета (оболочки) содержимого ContentPage (вместо ContentPage)

App.xaml

<Application.Resources>
  <ResourceDictionary>

     <Style x:Key="PageTitleStyle" TargetType="Label">
        <Setter Property="HorizontalOptions" Value="EndAndExpand"/>
        <Setter Property="Padding" Value="0,0,5,0"/>
     </Style>

  </ResourceDictionary>
</Application.Resources>

MainPage.xaml

<ContentPage ....>

   <NavigationPage.TitleView >
        <Label Text="{Binding Title}"  Style="{StaticResource PageTitleStyle}"  />
    </NavigationPage.TitleView>

  <StackLayout FlowDirection="RightToLeft">
    ....
 </StackLayout> 

</ContentPage>
0 голосов
/ 23 января 2020

Я думаю, может быть, привязка не работает. Я делаю образец для вашей справки.

MainPage.xaml

<StackLayout>
    <Button Clicked="Button_Clicked" Text="Title View Page" />
</StackLayout>

MainPage.xaml.cs

 private void Button_Clicked(object sender, EventArgs e)
    {
        Navigation.PushAsync(new TitleViewPage());
    }

TitleViewPage.xaml

 <ContentPage.Resources>
    <ResourceDictionary>
        <Style x:Key="TittleLabel" TargetType="Label">
            <Setter Property="TextColor" Value="Green" />
            <Setter Property="FontSize" Value="Large" />
        </Style>
    </ResourceDictionary>
</ContentPage.Resources>
<NavigationPage.TitleView>
    <StackLayout>
        <Label
            HorizontalOptions="Start"
            HorizontalTextAlignment="Start"
            Style="{StaticResource TittleLabel}"
            Text="{Binding Title}"
            VerticalOptions="CenterAndExpand" />
    </StackLayout>
</NavigationPage.TitleView>
<ContentPage.Content>
    <StackLayout>
        <Label
            HorizontalOptions="CenterAndExpand"
            Text="Welcome to TitleView Page!"
            VerticalOptions="CenterAndExpand" />
    </StackLayout>
</ContentPage.Content>

TitleViewPage.xaml.cs

publi c string Title {get; набор; } publi c TitleViewPage () {InitializeComponent (); Title = "My TitleView"; this.BindingContext = this; }

App.xaml.cs

public App()
    {
        InitializeComponent();

        MainPage = new NavigationPage(new MainPage());
    }

enter image description here

Обновлено:

При установке FlowDirection на RightToLeft вид заголовка можно увидеть на горизонтальном экране.

enter image description here

В локализации справа налево документ, в нем перечислены ограничения. https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/localization/right-to-left

Расположение кнопки NavigationPage, расположение элемента панели инструментов и анимация перехода управляются языком устройства, а не свойством FlowDirection.

Этот вопрос также сообщается. Вы можете следить за обновлением. https://github.com/xamarin/Xamarin.Forms/issues/9083

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