2013-04-05 1 views
0

У меня есть сетка WPF с строкой и столбцом 0 в качестве меток. Я хочу, чтобы первый столбец был статическим значением 20, но я хочу, чтобы остальные столбцы растянулись до их доступного пространства, пока они не достигли максимальной ширины, и я хочу, чтобы сетка оставалась центрированной даже после того, как строки достигли максимума. Если я использую Grid HorizontalAlignment = «Центр», каждая ширина столбца будет равна ширине содержимого этой строки, что не очень хорошо подходит для столбца, заполненного пустыми текстовыми полями. Если я использую Grid HorizontalAlignment = «Stretch», он делает именно то, что я хочу, но сетка не центрирована после того, как столбцы достигли максимальной ширины, она выровнена влево. Есть ли способ центрировать сетку и растягивать столбцы? Прикреплен раздел xaml для моей сетки.WPF Grid Center и Stretch Textbox

Спасибо.

<Expander Margin="10,10,10,10" Header="Expander"> 
    <Grid Margin="10,10,10,10" HorizontalAlignment="Center"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="20" /> 
      <ColumnDefinition Width="*" MaxWidth="200"/> 
      <ColumnDefinition Width="*" MaxWidth="200" /> 
      <ColumnDefinition Width="*" MaxWidth="200" /> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition /> 
      <RowDefinition /> 
     </Grid.RowDefinitions> 
     <Label Content="Ax" HorizontalContentAlignment="Center" Grid.Column="1" Grid.Row="0"/> 
     <Label Content="0" HorizontalContentAlignment="Center" VerticalAlignment="Center" Grid.Column="0" Grid.Row="1" /> 
     <TextBox Name="AxK00" Margin="1,1,1,1" HorizontalContentAlignment="Center" Grid.Column="1" Grid.Row="1" /> 
     <TextBox Name="AyK00" Margin="1,1,1,1" HorizontalContentAlignment="Center" Grid.Column="2" Grid.Row="1" /> 
     <TextBox Name="AzK00" Margin="1,1,1,1" HorizontalContentAlignment="Center" Grid.Column="3" Grid.Row="1" /> 
    </Grid> 
</Expander> 

ответ

4

В то время как ваши колонны достигли своего MaxWidth Сетку имеет HorizontalAlignment = Stretch что означает, что сетка будет расширяться, чтобы заполнить пространство, если не дать ему ширину. Попробуйте установить MaxWidth вашего Grid на 620 (сумма ваших MaxWidths) или что-то подобное. Ваша сетка будет растягиваться, чтобы заполнить ваш максимальный размер, но все еще достаточно мала, чтобы можно было наблюдать наблюдаемый объект HorizontalAlignment = Center.

+0

Это сработало отлично, спасибо вам большое. –

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

  • Нет связанных вопросов^_^