У меня возникают проблемы с растяжкой элементов списка до всей ширины списка.
Ниже мой xaml для моего списка
<ListBox x:Name="MyListBox"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
HorizontalContentAlignment = "Stretch"
Margin="0,10,0,0"
ItemsSource="{Binding Path=Users}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
Grid.Column="0"
Grid.ColumnSpan="1"
Grid.Row="1"
Grid.RowSpan="3">
<ListBox.ItemTemplate>
<DataTemplate>
<local:MyListBoxTemplate/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Я попробовал следующие предложения, найденные в других сообщениях, но они не сработали для меня:
- Установите для горизонтального содержимого ListBox значение Stretch
- Перезапись стиля для listboxitem, то есть новый стиль в тегах ItemContainerStyle внутри списка xaml (примечание: я использую космополитическую тему навигации)
- Редактирование стиля DefaultListBoxItemStyle в CoreStyles.xaml для включения HorizontalContentAlignmemt
Это потому, что я использую отдельный файл xaml для своего шаблона данных?
Или проблема с моим шаблоном данных?
У кого-нибудь есть предложения по поводу того, что еще я мог бы попробовать?
Я видел где-то, возможно, я мог бы связать ширину ListBoxItem с фактической шириной ListBox?
Я довольно новичок в этом, поэтому заранее прошу прощения, если я пропустил что-то действительно простое / очевидное!
Ниже мой шаблон данных:
<Grid x:Name="LayoutRoot" HorizontalAlignment="Stretch" ShowGridLines="True" Height="20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10*" />
<ColumnDefinition Width="30*" />
<ColumnDefinition Width="300*" />
<ColumnDefinition Width="50*" />
<ColumnDefinition Width="10*" />
</Grid.ColumnDefinitions>
<Image x:Name="TwitterImageIcon"
Grid.Column="1"
Grid.ColumnSpan="1"
Source="{Binding Path=imageUrl}"
/>
<StackPanel Orientation="Horizontal" Grid.Column="2" Grid.ColumnSpan="1" HorizontalAlignment="Stretch" >
<TextBlock x:Name="TwitterUsernameTextBlock"
Text="{Binding Path=username,StringFormat='@\{0\} '}"/>
<TextBlock x:Name="TwitterFullNameTextBlock"
Text="{Binding Path=fullname}"/>
</StackPanel>
<Button x:Name="InfoButton"
Content="Info"
Grid.Column="3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"/>
<Border x:Name="StyleBorder" />
</Grid>
Любые предложения с благодарностью.
Заранее спасибо.
Обновление: забыл упомянуть, что при добавлении:
<ListBox...>
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.Resources>
</ListBox>
Это работает, однако, влияет на космополитическую тему, так что выделение элемента списка при наведении на него и при выборе отличается от стиля остальной космополитической темы.