Возьмите этот простой пример:Почему ListBoxItems не получает все доступное пространство?
<Grid>
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate >
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*" />
<ColumnDefinition Width="0.5*" />
</Grid.ColumnDefinitions>
<TextBlock Text="FIRST TEXT" />
<TextBlock Grid.Column="1" Text="SECOND TEXT" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
a
a
</ListBox>
</Grid>
Насколько я знаю, это должно показать первый текст на левой половине экрана приложения и второй текст на правой половине.
Вместо этого два текста одно за другим. как будто сетка думала, что все доступное пространство является тем, которое используется в тексте. Может быть, мне нужно что-то изменить на панели Listbox?
EDIT: Я попытался это:
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid>
<ContentPresenter HorizontalAlignment="Stretch" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
И даже тогда, когда он работает он вскрыт выбранную особенность ListBoxItem :(
Кстати, я работаю на Windows, лепешку 8
Это не делает никакой разницы :( –
я включил объяснение и фактический фрагмент кода в моем ответе. Это было проверено в VS 2010 и работает отлично. Rgds, –
Это правильный ответ. – Xcalibur37