2013-06-04 3 views
0

Я разрабатываю приложение на основе XAML, и у меня проблема с расстановкой/раскладкой. В настоящее время у меня есть моя главная страница как сетка с 1 столбцом. У меня есть ListBox, хотя мне нужно, чтобы мой шаблон данных отображался более чем в 2 столбцах. Первый элемент данных должен занимать 75% экрана, а второй элемент данных должен занимать остальное. Когда я запускаю свое приложение, данные из моих элементов списка сгруппированы в левой части экрана. Как я могу изменить это поведение?XAML Сетка сетки

<Grid x:Name="LayoutRoot"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"></RowDefinition> 
     <RowDefinition Height="2*"></RowDefinition> 
     <RowDefinition Height="Auto"></RowDefinition> 
     <RowDefinition Height="Auto"></RowDefinition> 
     <RowDefinition Height="9*"></RowDefinition> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="12"/> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="12"/> 
    </Grid.ColumnDefinitions> 
    <!--My Section--> 
    <Grid Grid.Row="3" Grid.Column="1"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="Auto" /> 
     </Grid.RowDefinitions> 
     <TextBlock Grid.Row="0" Grid.Column="0" Text="Selected Location" FontWeight="Bold" Style="{StaticResource grayTextBox}"/> 
     <Line Grid.Row="1" Grid.Column="0" Stroke="White" StrokeThickness="1" /> 
     <ListBox Grid.Row="2" ItemsSource="{Binding Path=SelectedLocations, Mode=TwoWay}" HorizontalContentAlignment="Stretch" Visibility="{Binding Path=IsSelectedLocationAvailable, Converter={StaticResource visibilityConverter}}"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <Grid ShowGridLines="True"> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="*" /> 
          <RowDefinition Height="*" /> 
          <RowDefinition Height="*" /> 
         </Grid.RowDefinitions> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="*" /> 
          <ColumnDefinition Width="Auto" /> 
         </Grid.ColumnDefinitions> 
         <TextBlock Grid.Row="0" Grid.Column="0" Foreground="#ffb107" Text="{Binding Path=Name}" /> 
         <TextBlock Grid.Row="1" Grid.Column="0" Foreground="#ffb107" Text="{Binding Path=Address}" /> 
         <TextBlock Grid.Row="2" Grid.Column="0" Foreground="#ffb107" Text="{Binding Path=CityStateZip}" /> 
         <StackPanel Grid.Row="0" Grid.Column="1" Grid.RowSpan="3" Orientation="Horizontal" HorizontalAlignment="Right"> 
          <Rectangle Fill="Orange" /> 
          <Rectangle Fill="Blue" /> 
         </StackPanel> 
        </Grid> 

ответ

0

Зачем использовать сетку для центровки контента?

настоящее время у меня моя главная страница в сетке 1 колонке

Зачем использовать сетку, если он имеет только один столбец? Используйте маржу на элементах стекапанели.

<Grid x:Name="LayoutRoot"> 
    <StackPanel Orientation="Vertical"> 
     <TextBlock Text="Selected Location" FontWeight="Bold" Style="{StaticResource grayTextBox}"/> 
     <Line Stroke="White" StrokeThickness="1" /> 
     <ListBox ItemsSource="{Binding Path=SelectedLocations, Mode=TwoWay}" HorizontalContentAlignment="Stretch" Visibility="{Binding Path=IsSelectedLocationAvailable, Converter={StaticResource visibilityConverter}}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <Grid ShowGridLines="True"> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="*" /> 
         <RowDefinition Height="*" /> 
         <RowDefinition Height="*" /> 
        </Grid.RowDefinitions> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*" /> 
         <ColumnDefinition Width="Auto" /> 
        </Grid.ColumnDefinitions> 
        <TextBlock Grid.Row="0" Grid.Column="0" Foreground="#ffb107" Text="{Binding Path=Name}" /> 
        <TextBlock Grid.Row="1" Grid.Column="0" Foreground="#ffb107" Text="{Binding Path=Address}" /> 
        <TextBlock Grid.Row="2" Grid.Column="0" Foreground="#ffb107" Text="{Binding Path=CityStateZip}" /> 
        <StackPanel Grid.Row="0" Grid.Column="1" Grid.RowSpan="3" Orientation="Horizontal" HorizontalAlignment="Right"> 
         <Rectangle Fill="Orange" /> 
         <Rectangle Fill="Blue" /> 
        </StackPanel> 
       </Grid> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
     </ListBox> 
    </StackPanel> 
</Grid> 
Смежные вопросы