Nasıl yapılır: ListView İçerisindeki Bir Sütunun Yatay Hizalamasını Değiştirme
Varsayılan olarak, içindeki ListViewItem her sütunun içeriği sola hizalanır. içindeki öğesinde DataTemplatebir DataTemplate ve ayarlayarak her sütunun HorizontalAlignment hizalamasını değiştirebilirsiniz. Bu konu başlığında, bir ListView öğesinin içeriğini varsayılan olarak nasıl hizaladığı ve içindeki ListViewbir sütunun hizalamasını nasıl değiştireceği gösterilir.
Örnek
Aşağıdaki örnekte ve ISBN
sütunlarındaki Title
veriler sola hizalanır.
<!--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>
Sütunun ISBN
hizalamasını değiştirmek için, her ListViewItem birinin özelliğinin HorizontalContentAlignment olduğunu Stretchbelirtmeniz gerekir; böylece her ListViewItem sütundaki öğeler her sütunun tüm genişliği boyunca yayılabilir veya konumlandırılabilir. ListView bir veri kaynağına bağlı olduğundan, öğesini ayarlayan HorizontalContentAlignmentbir stil oluşturmanız gerekir. Ardından, özelliğini kullanmak yerine içeriği görüntülemek için bir DataTemplate kullanmanız DisplayMemberBinding gerekir. Her şablonun öğesini ISBN
görüntülemek için, DataTemplate yalnızca özelliği olarak Rightayarlanmış bir TextBlockHorizontalAlignment içerebilir.
Aşağıdaki örnek, sütunu sağa hizalamak için ISBN
gereken stili ve DataTemplate öğesini tanımlar ve öğesine başvurmak DataTemplateiçin öğesini GridViewColumn değiştirir.
<!--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>
Ayrıca bkz.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin