3

3 つの列を持つ Listview があります。最後の列には、列のバインド先のデータが true の場合にのみ表示される画像が保持されます。

<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 記事をすべてフォローしましたが、どれも機能しませんでした。この1列だけを中央に配置したい。

任意のポインタをいただければ幸いです。

4

1 に答える 1

4

これをListViewに追加します。

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
    </Style>
</ListView.ItemContainerStyle>
于 2012-10-19T12:50:42.727 に答える