WPF不同项目';s项控件上的边距

WPF不同项目';s项控件上的边距,wpf,margin,itemscontrol,Wpf,Margin,Itemscontrol,我有以下项控件: <ItemsControl x:Name="ListResult"> <ItemsControl.ItemTemplate> <DataTemplate> <DockPanel> <Image Margin="10,0,0,0" Source="{Binding Pic}"/> <TextBl

我有以下
项控件

<ItemsControl x:Name="ListResult">
   <ItemsControl.ItemTemplate>
      <DataTemplate>
         <DockPanel>
            <Image Margin="10,0,0,0"
                   Source="{Binding Pic}"/>
            <TextBlock Text={Binding Info}/>
         </DockPanel>
      </DataTemplate>
   </ItemsControl.ItemTemplate>
</ItemsControl>

是的,您可以在
列表的元素中设置边距,如:

ListResult[0].Margin = new Thickness(10, 0, 0, 0); // etc... for rest of elements
然后您的XAML代码需要如下所示:

<ItemsControl x:Name="ListResult">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <DockPanel>
                <Image Margin="{Binding Margin}"
                       Source="{Binding Pic}"/>
                <TextBlock Text={Binding Info}/>
           </DockPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

如果您想在两行之间切换: 发件人: 我把@biju commant改为Margin

<ItemsControl ItemsSource="{Binding ListResult}" AlternationCount="2">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <DockPanel>
                <Image x:Name="image" Source="{Binding Pic}"/>
                <TextBlock Text="{Binding Info}"/>
            </DockPanel>
            <DataTemplate.Triggers>
                <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                    <Setter Property="Margin" Value="10,0,0,0" TargetName="image"/>
                </Trigger>
                <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                    <Setter Property="Margin" Value="50,0,0,0" TargetName="image"/>
                </Trigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>


Reyn需要为每个项目设置不同的边距,而不是按变更索引设置项目!这就是为什么我说如果他指的是候补(我没有投票没有用)
<ItemsControl ItemsSource="{Binding ListResult}" AlternationCount="2">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <DockPanel>
                <Image x:Name="image" Source="{Binding Pic}"/>
                <TextBlock Text="{Binding Info}"/>
            </DockPanel>
            <DataTemplate.Triggers>
                <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                    <Setter Property="Margin" Value="10,0,0,0" TargetName="image"/>
                </Trigger>
                <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                    <Setter Property="Margin" Value="50,0,0,0" TargetName="image"/>
                </Trigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>