2016-11-30 2 views
0

Мой XAML выглядит следующим образом:Xamarin Forms: Центрирование нескольких элементов управления в макете?

<StackLayout Orientation="Vertical" HorizontalOptions="Center"> 
    <controls:BindablePicker HorizontalOptions="Center" /> 
    <Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="2*" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 
    <ListView Grid.Row="0" Grid.Column="1" HorizontalOptions="Center" SeparatorVisibility="None"> 
     <ListView.ItemTemplate> 
     <DataTemplate> 
      <ViewCell> 
      <ViewCell.View> 
       <Grid BackgroundColor="Aqua"> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="*" /> 
       </Grid.RowDefinitions> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="Auto" /> 
        <ColumnDefinition Width="Auto" /> 
       </Grid.ColumnDefinitions> 
       <controls:BindablePicker Title="Length" Grid.Row="0" Grid.Column="0" BackgroundColor="White" /> 
       <controls:BindablePicker Title="Units" Grid.Row="0" Grid.Column="1" BackgroundColor="White" /> 
       </Grid> 
      </ViewCell.View> 
      </ViewCell> 
     </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
    </Grid> 
</StackLayout> 

Вот что я получаю: Attempt

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

Обратите внимание, что я хочу добавить к нему другое содержимое, например, метки и другие сетки, все они сосредоточены на странице.

Любая помощь была бы принята с благодарностью. Благодарю.

ответ

1

Прежде всего, я не думаю, что вам нужно определение строки в вашей внутренней сетке, так как у вас есть только одна строка.

Во-вторых, для обеспечения эффективности, не пользователь «Авто», просто удалите свойство ширины из определений столбцов. Делая это, оба столбца будут иметь одинаковую ширину ... Надеюсь;)

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

<ListView Grid.Row="0" Grid.Column="1" HorizontalOptions="Center" SeparatorVisibility="None"> 
     <ListView.ItemTemplate> 
     <DataTemplate> 
      <ViewCell> 
      <ViewCell.View> 
       <Grid BackgroundColor="Aqua"> 

       <Grid.ColumnDefinitions> 
        <ColumnDefinition /> 
        <ColumnDefinition /> 
       </Grid.ColumnDefinitions> 
       <controls:BindablePicker Title="Length" Grid.Column="0" BackgroundColor="White" HorizontalOptions = "End" /> 
       <controls:BindablePicker Title="Units" Grid.Column="1" BackgroundColor="White" HorizontalOptions = "Start" /> 
       </Grid> 
      </ViewCell.View> 
      </ViewCell> 
     </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

Подсказка: Следующий выпуск Xamarin.Forms, который находится в альфа-канале теперь содержит связываемый сборщик, так что вы не должны пользователю 3-ий участника в настоящее время.

+0

Я думаю, что сделал. Благодаря! Только проблема, которую я имею сейчас, - это когда сборщик инициализируется «Ногами», ширина немного меньше, так что когда я меняю его на «Ярд», часть «s» отключается. –

Смежные вопросы