Как я могу убедиться, что StackLayout имеет хотя бы минимальную высоту? - PullRequest
0 голосов
/ 26 августа 2018

Я попробовал это в своем коде.

<StackLayout 
   HorizontalOptions="FillAndExpand" 
   Spacing="0" 
   MinimumHeightRequest="50">
   <StackLayout Margin="20, 6, 20, 8" 
      HorizontalOptions="FillAndExpand" 
      VerticalOptions="FillAndExpand" 
      Spacing="0">
      <Label Text="ABC" 
         HorizontalOptions="Start" 
         VerticalOptions="StartAndExpand" />
   </StackLayout>
</StackLayout>

Но с небольшим текстом, таким как ABC, высота не равна 50. Можно ли каким-то образом убедиться, что высота составляет минимум 50?

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Вы бы попробовали что-то подобное:

<Grid RowSpacing="0">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <StackLayout Grid.Row="0" HeightRequest="50"/>
</Grid>

Я делаю это в моем приложении, и оно отлично работает. Вы устанавливаете RowDefinition на Auto, тогда он будет точно соответствовать вашему HeightRequest.

0 голосов
/ 03 сентября 2018

Вы можете попробовать установить HeightRequest=50 и измерить высоту текста вашего ярлыка.Используйте ITextMeter из этого источника , а если высота текста превышает 50, установите для параметра HeightRequest значение высоты текста.

0 голосов
/ 29 августа 2018

Передача, что ShawnCastrianni.5092 на следующий форум

После прочтения замечаний в документах API, я вижу это:

"MinimumHeightRequest используетсяпереопределить результаты вызова VisualElement.GetSizeRequest (double, double), установив свойство минимальной высоты. Это приводит к тому, что при обработке переполнения этот элемент уменьшается до минимальной высоты перед элементами, для которых не установлен минимальный размер. "

Полагаю, это соответствует тому, что ты сказал, Джейсон.Поэтому, думаю, все будут скинуты именем MinimumHeightRequest.Я бы предпочел, чтобы он сказал OverflowHeightRequest , чтобы избежать путаницы.

Само название вводит в заблуждение.Вам нужно будет создать собственное решение, чтобы решить вашу проблему

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