我有一个包含三列的 Listview。最后一列包含一个图像,该图像仅在该列绑定到的数据为真时才会显示。
<ListView HorizontalAlignment="Stretch" Margin="5" VerticalAlignment="Stretch" Name="lstPrinters" ItemsSource="{Binding PrinterCollection}">
<ListView.View>
<GridView>
<GridViewColumn Width="140" Header="Name" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Width="250" Header="UNC" DisplayMemberBinding="{Binding UNC}" />
<GridViewColumn Width="50" Header="Default" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" >
<Image Width="16" Height="16" Source="/PrinterController.Agent;component/images/GreenTick.png">
<Image.Style>
<Style TargetType="{x:Type Image}" >
<Style.Triggers>
<DataTrigger Binding="{Binding IsDefault}" Value="false">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding IsDefault}" Value="true">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
我希望图像在列中水平居中,但无论我如何尝试它都不会居中。老实说,我已经尝试了很多方法来做到这一点,我开始忘记我拥有和没有尝试过的东西!我已经关注了所有我能找到的与这个问题相关的 SO 文章,但没有一个有效。我只希望这一列居中。
任何指针将不胜感激。