我无法让我的列表框项目伸展到整个列表框的宽度。
下面是我的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的HorizontalContentAlignment为Stretch
- 覆盖风格ListBoxItem的即列表框XAML中ItemContainerStyle标签内的新风格(注:我使用的是国际化的导航主题)
- 在CoreStyles.xaml EDITTING的DefaultListBoxItemStyle风格,包括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>
它的工作原理却影响了国际化的主题,这样的列表框项目的higlighting当鼠标悬停在选择时有不同的风格,以国际化主题的其余部分。