Сетка Silverlight: левая должна растягиваться, правая определяется - PullRequest
2 голосов
/ 05 октября 2011

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

Вот мой код:

<DataTemplate x:key="NoteItemTemplate">
 <Grid Background="{Binding ColorBrush}"
   Height="50"
   Margin="5,5,5,5"
   HorizontalAlignment="Stretch">

   <Grid.ColumnDefinitions>
    <ColumnDefinition Width="1*" />
    <ColumnDefinition Width="50" />
    <ColumnDefinition Width="50" />
   </Grid.ColumnDefinitions>
 </Grid>
</DataTemplate>

      <!-- far away, in an another file.. -->

 <ListBox
    x:Name="NotesListBox"
    VerticalContentAlignment="Stretch"
    HorizontalContentAlignment="Stretch"
    VerticalAlignment="Top"
    ItemsSource="{Binding NotesList}"
    ItemTemplate="{StaticResource NoteItemTemplate}"
    Background="AliceBlue" />

Не имеет значения, если это 1 * или *.

Но я не могу найти ответ. Как бы вы это сделали?

1 Ответ

3 голосов
/ 05 октября 2011

Вы упомянули, что хотите использовать приведенное выше определение Grid в качестве DataTemplate для ListBoxItem.По умолчанию содержимое ListBoxItem не растягивается, поэтому в вашем случае вы увидите только 2 столбца.

Так что я думаю, что вам нужно указать, что вы хотите растянуть содержимое ListBoxItem.Сделай так:

<ListBox>
  <ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
      <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
    </Style>
  </ListBox.ItemContainerStyle>
</ListBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...