我创建了一个ListBox,它有一个如下所示的ItemTemplate:
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="80" Width="80">
<Image Stretch="Uniform" Source="{Binding image.ImageSource}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
我试图用图片填充列表框(你可能已经注意到了) 它的绑定工作得很好但是,即使我已经将图像设置为网格内部的中心,图像似乎以一种奇怪的方式排列。
这是一个示例图像:
请注意图像右侧是否有一条小蓝线,就好像我有边距一样。
我有一个固定的网格高度和宽度,以保持列表框看起来不错。
我使用以下XAML实现了项目的水平堆栈:
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
有谁知道如何让这些图像在网格中居中?
谢谢
答案 0 :(得分:3)
默认的Aero主题为Padding
定义2,0,0,0
ListBoxItems
,因此内容左侧有空格。要摆脱它,请定义自己的ListBox.ItemContainerStyle
并覆盖它。
类似的东西:
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Padding"
Value="0"/>
</Style>
</ListBox.ItemContainerStyle>
答案 1 :(得分:0)
您是否尝试过Image的HorizontalAlignment标签?
<Image HorizontalAlignment="Center" />
如果您需要,还有VerticalAlignment
。
如果这不起作用,请尝试使用ListBox属性HostizontalContentAlignment
<ListBox HorizontalContentAlignment="Center">