根據預設,ListViewItem 中每個資料行的內容會靠左對齊。 您可以藉由提供 DataTemplate,並在 DataTemplate 內的元素上設定 HorizontalAlignment 屬性,來變更每個資料行的對齊方式。 本主題說明 ListView 如何預設對齊其內容,以及如何變更 ListView 中一個資料行的對齊方式。
範例
在下列範例中,Title 和 ISBN 資料行中的資料會靠左對齊。
<!--XmlDataProvider is defined in a ResourceDictionary,
such as Window.Resources-->
<XmlDataProvider x:Key="InventoryData" XPath="Books">
<x:XData>
<Books xmlns="">
<Book ISBN="0-7356-0562-9" Stock="in" Number="9">
<Title>XML in Action</Title>
<Summary>XML Web Technology</Summary>
</Book>
<Book ISBN="0-7356-1370-2" Stock="in" Number="8">
<Title>Programming Microsoft Windows With C#</Title>
<Summary>C# Programming using the .NET Framework</Summary>
</Book>
<Book ISBN="0-7356-1288-9" Stock="out" Number="7">
<Title>Inside C#</Title>
<Summary>C# Language Programming</Summary>
</Book>
<Book ISBN="0-7356-1377-X" Stock="in" Number="5">
<Title>Introducing Microsoft .NET</Title>
<Summary>Overview of .NET Technology</Summary>
</Book>
<Book ISBN="0-7356-1448-2" Stock="out" Number="4">
<Title>Microsoft C# Language Specifications</Title>
<Summary>The C# language definition</Summary>
</Book>
</Books>
</x:XData>
</XmlDataProvider>
<ListView ItemsSource="{Binding Source={StaticResource InventoryData}, XPath=Book}">
<ListView.View>
<GridView>
<GridViewColumn Width="300" Header="Title"
DisplayMemberBinding="{Binding XPath=Title}"/>
<GridViewColumn Width="150" Header="ISBN"
DisplayMemberBinding="{Binding XPath=@ISBN}"/>
</GridView>
</ListView.View>
</ListView>
若要變更 ISBN 資料行的對齊方式,您必須指定每個 ListViewItem 的 HorizontalContentAlignment 屬性是 Stretch,讓每個 ListViewItem 中的元素可以跨越或沿著每個資料行的整個寬度定位。 由於 ListView 繫結至資料來源,因此您必須建立設定 HorizontalContentAlignment 的樣式。 接下來,您必須使用 DataTemplate 來顯示內容,而不是使用 DisplayMemberBinding 屬性。 若要顯示每個範本的 ISBN,DataTemplate 只能包含 TextBlock,其 HorizontalAlignment 屬性設定為 Right。
下列範例會定義讓 ISBN 資料行靠右對齊所需的樣式和 DataTemplate,並變更 GridViewColumn 以參考 DataTemplate。
<!--The Style and DataTemplate are defined in a ResourceDictionary,
such as Window.Resources-->
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
<DataTemplate x:Key="ISBNTemplate">
<TextBlock HorizontalAlignment="Right"
Text="{Binding XPath=@ISBN}"/>
</DataTemplate>
<ListView ItemsSource="{Binding Source={StaticResource InventoryData}, XPath=Book}">
<ListView.View>
<GridView>
<GridViewColumn Width="300" Header="Title"
DisplayMemberBinding="{Binding XPath=Title}"/>
<GridViewColumn Width="150" Header="ISBN"
CellTemplate="{StaticResource ISBNTemplate}"/>
</GridView>
</ListView.View>
</ListView>