Windows phone 7 C#windows phone-在xaml ListBox.ItemTemplate中对齐
我想做一个简单的列表框。每行应包含两个控件,一个向左对齐,另一个向右对齐,仅此而已:) 我尝试了多种方法,但没有任何效果。我的代码如下Windows phone 7 C#windows phone-在xaml ListBox.ItemTemplate中对齐,windows-phone-7,xaml,Windows Phone 7,Xaml,我想做一个简单的列表框。每行应包含两个控件,一个向左对齐,另一个向右对齐,仅此而已:) 我尝试了多种方法,但没有任何效果。我的代码如下 <StackPanel Grid.Row="1" Margin="12,0,12,0" Grid.Column="0"> <ListBox Name="ListBox" Margin="12,0,12,0" ItemsSource="Exercises" HorizontalContentAlignment="Stretch"&
<StackPanel Grid.Row="1" Margin="12,0,12,0" Grid.Column="0">
<ListBox Name="ListBox" Margin="12,0,12,0" ItemsSource="Exercises" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Width=">
<TextBlock Text="abc" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<TextBlock Text="def" HorizontalAlignment="Right" VerticalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
默认情况下,ListBoxItem不会填充给定的空间。它将自身与内容向左对齐。要确保ListBoxItem的内容跨越整个宽度,需要更改ItemContainerStyle
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
现在,内容将跨越可用宽度。如果您希望使用示例中的StackPanel,请确保也将其设置为水平对齐。StackPanel也不能填充给定的可用空间
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<TextBlock Text="abc" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<TextBlock Text="def" HorizontalAlignment="Right" VerticalAlignment="Center"/>
</StackPanel>
</DataTemplate>
但是,我建议使用网格并定义两列
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="abc" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<TextBlock Text="def" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center"/>
</Grid>
</DataTemplate>
请澄清,您希望控件左右对齐还是内容左右对齐?我希望控件左右对齐:)谢谢,“网格方法”有效:)您甚至不需要使用我正在使用MaterialDesign和MahApps,当我更改ItemContainerStyle时,我丢失了这些库提供的自定义样式,我认为它会完全重置ListBox样式,无论如何,我可以在仅更改该属性时保留自定义样式?该样式很可能有一个键,您可以使用它来扩展样式