У меня есть TitleView на некоторых страницах содержимого моего приложения, и я хочу, чтобы StackLayout, содержащий весь текст, занимал доступное пространство. Тем не менее, установка для его HorizontalOptions значения Fill или FillAndExpand не работает так, как обычно в ContentPage, и вместо этого StackLayout имеет такую же ширину, как и метки, которые у меня есть внутри.
Мой код XAML:
<NavigationPage.TitleView>
<StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand" x:Name="TitleBarLayout">
<Label Text="PageTitle"
TextColor="White"
FontSize="20"
FontAttributes="Bold"
HorizontalOptions="Start"
x:Name="PageTitle"/>
<Label Text="Text1:"
FontSize="20"
TextColor="LightGray"
HorizontalOptions="End"/>
<Label x:Name="Label1"
FontSize="20"
TextColor="Black"
HorizontalOptions="End"/>
<Label Text="Text2:"
FontSize="20"
TextColor="LightGray"
HorizontalOptions="End"/>
<Label x:Name="Label2"
FontSize="20"
TextColor="Black"
HorizontalOptions="End"/>
<Label Text="Text3:"
FontSize="20"
TextColor="LightGray"
HorizontalOptions="End"/>
<Label x:Name="Label3"
FontSize="20"
TextColor="Black"
HorizontalOptions="End"/>
</StackLayout>
</NavigationPage.TitleView>
Поэтому в идеале я хочу, чтобы ярлык «PageTitle» располагался прямо рядом со стрелкой «Назад», а затем располагал все остальное на другом конце панели навигации. - как вы можете видеть, я установил HorizontalOptions="Start"
для PageTitle и HorizontalOptions="End"
для всего остального.
Результат этого кода такой: ![enter image description here](https://i.stack.imgur.com/4TIWm.jpg)
И желаемый результат таков (отредактировано в Paint):
![enter image description here](https://i.stack.imgur.com/sBUgb.jpg)
Я также попытался получить ширину страницы в C # и установить поле дляметка PageTitle, как показано ниже:
double width = App.Current.MainPage.Width / 4;
PageTitle.Margin = new Thickness (0,0,width,0);
Но поскольку мое приложение предназначено для использования на любом устройстве в книжной или альбомной ориентации, это вызывает ошибки переноса текста на слишком маленькие дисплеи.
Пожалуйста, никаких рекомендаций для пользовательских инструментов, за исключением случаев, когда абсолютно необходимо.