This article has been localized into German by the community.
Gewusst-Wie: ListView mit linksbündigen Spaltenbeschriftungen
In einer normalen Listenansicht sind die Spaltennamen linksbündig, aber aus irgendeinem Grund fand Microsoft es besser, die Namen in der WPF-Listenansicht standardmäßig zu zentrieren. In vielen Fällen wird Ihre Anwendung dadurch im Vergleich zu anderen Windows-Anwendungen unmodern aussehen. So sieht die Listenansicht standardmäßig in WPF aus:
Lassen Sie uns versuchen, links ausgerichtete Spaltennamen zu erhalten. Leider gibt es keine direkten Eigenschaften auf der GridViewColumn, um dies zu steuern, aber das heisst noch längst nicht, dass man da nichts tun kann.
Der GridViewColumHeader ist das Element, das die Überschrift einer GridViewColumn anzeigt. Mit einem Style, der sich auf den GridViewColumHeader bezieht, können wir die Eigenschaft HorizontalAlignment ändern. In diesem Fall ist die Standardeinstellung Center, aber wir können sie auf Left ändern, um das zu erreichen, was wir wollen:
<Window x:Class="WpfTutorialSamples.ListView_control.ListViewGridViewSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ListViewGridViewSample" Height="200" Width="400">
<Grid>
<ListView Margin="10" Name="lvUsers">
<ListView.Resources>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Left" />
</Style>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Age}" />
<GridViewColumn Header="Mail" Width="150" DisplayMemberBinding="{Binding Mail}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
Dieser Abschnitt, definiert in den Ressourcen der ListView, macht alles, was wir brauchen.
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Left" />
</Style>
Lokale und globale Stile
Durch die Definition des Styles innerhalb des Controls selbst, gilt er nur für diese spezielle ListView. In vielen Fällen möchten Sie es auf alle ListViews innerhalb derselben WindowPage oder vielleicht sogar global über die gesamte Anwendung anwenden. Sie können dies tun, indem Sie den Style entweder in die Windows- oder Anwendungsressourcen verlagern. Hier ist das gleiche Beispiel, wo wir den Stil auf das gesamte Fenster anwenden, anstatt nur auf die jeweilige ListView:
<Window x:Class="WpfTutorialSamples.ListView_control.ListViewGridViewSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ListViewGridViewSample" Height="200" Width="400">
<Window.Resources>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Left" />
</Style>
</Window.Resources>
<Grid>
<ListView Margin="10" Name="lvUsers">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Age}" />
<GridViewColumn Header="Mail" Width="150" DisplayMemberBinding="{Binding Mail}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
Falls Sie eine andere Ausrichtung möchten, zum Beispiel rechtsbündig, ändern Sie einfach den Stil:
<Setter Property="HorizontalContentAlignment" Value="Right" />