2016-08-01 5 views
0

Это отладка XAML от приложения Android Xamarin Forms. Мне интересно, кто-нибудь знает менее барочный способ позиционирования и калибровки полной ширины Slider, который был увеличен до двойного размера?Есть ли лучший способ масштабирования элементов в Xamarin Forms XAML?

<Grid> 
    <Grid.RowDefinitions><RowDefinition Height="auto"/></Grid.RowDefinitions> 
    <Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="2*"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions> 
    <Slider Grid.Row="0" Grid.Column="1" 
    HorizontalOptions="FillAndExpand" 
    Scale="2.0" /> 
</Grid> 

Это все, чтобы получить около двух странных ограничения/ошибки в XF:

  1. Параметр Scale игнорируется макете поэтому ползунок размера, чтобы удвоить доступное пространство и отсекается.

  2. Параметр Padding не принимает относительные значения, поэтому нет способа указать, что левое и правое заполнение должно занимать 25% от общего доступного пространства. Абсолютное число будет ломаться при разном разрешении экрана или даже при вращении экрана.

кажется дико чрезмерным, чтобы использовать Grid для этого, когда мне нужно только одну ячейки!

ответ

0

Вы можете использовать AbsoluteLayout, чтобы сделать код более простым, результат будет тот же:

<AbsoluteLayout> 
    <Slider 
     AbsoluteLayout.LayoutFlags="All" 
     AbsoluteLayout.LayoutBounds=".5, .5, .5, .5" 
     Scale="2.0"> 
    </Slider> 
</AbsoluteLayout> 
+0

Спасибо! Это выглядит лучше, и у AbsoluteLayout есть интересные функции. –

+0

Но дизайн XF странный! Кто бы мог подумать об использовании «AbsoluteLayout» для компоновки _relative_! И почему не могут относительные значения работать для всех соответствующих параметров? И кто хочет, чтобы «Масштаб» не учитывался для макета? –