在自定义列表视图中,每行由图像和文本组成。每个偶数行,图像应该在左边和每个奇数行,它应该在右边。
作为WPF的初学者,我想知道实现这一目标的最简单方法是什么,并重用大部分编写的XAML。
奇数/偶数项模板实际上只是因图像位于文本的一侧或另一侧而不同。
答案 0 :(得分:2)
我相信你可以在风格中使用触发器来实现这一目标。您可以将图像左对齐并在触发器中将图像更改为右图。
类似于:
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<!-- Change image position here -->
</Trigger>
<Style.Triggers>
有关如何使用AlternationIndex here的更多信息。
修改 - 工作样本
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<DockPanel>
<Image Source="/WpfApplication;component/Images/TestImage.jpg" DockPanel.Dock="Left" x:Name="rowImage"/>
<TextBlock Text="Testing..." Background="{TemplateBinding Background}"/>
</DockPanel>
<ControlTemplate.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="DockPanel.Dock" TargetName="rowImage" Value="Right" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>