2016-11-30 10 views
0

私のXAMLは次のようになります。Xamarinフォーム:レイアウト内に複数の異なるコントロールを中央揃えする?

<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

まず、1つの行しか持たないので、内側のグリッドに行定義が必要ではないと思います。

パフォーマンスのために、「自動」ユーザーではなく、列定義からwidthプロパティを削除するだけです。 これにより、両方の列の幅が同じになります...)

以下のようなリストビューを作成した場合、それを修正するだけでなく、コントロールのHorizo​​ntalOptionsを使わずに試してみてください。

<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の次のリリース、バインド可能ピッカーが含まれています。

+0

そうだったと思います。ありがとう!ピッカーが「フィート」に初期化されたときに問題が発生しただけですが、「ヤード」に変更すると「s」の部分がカットオフするような幅が少し小さくなります。 –

関連する問題