TOC

This article is currently in the process of being translated into Spanish (~97% done).

El control ListView:

How-to: ListView with left aligned column names

En un ListView normal, los nombres de las columnas se alinean a la izquierda, pero por alguna razón, Microsoft ha decidido centrar los nombres de manera predeterminada en el ListView de WPF. En muchos      casos, esto hará que su aplicación se vea fuera de estilo en comparación con otras aplicaciones de Windows. Así es como se verá ListView en WPF por predeterminado :

Intentemos cambiar eso a los nombres de columna alineados a la izquierda. Desafortunadamente, no hay propiedades directas en GridViewColumn para controlar esto, pero afortunadamente eso no significa que no se pueda cambiar.

Usando un estilo, dirigido al GridViewColumHeader, que es el elemento utilizado para mostrar el encabezado de un GridViewColumn, podemos cambiar la propiedad HorizontalAlignment. En este caso, el valor predeterminado es Centro, pero podemos cambiarlo a Izquierda para lograr lo que queremos:

<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>

La parte que hace todo el trabajo por nosotros es el Estilo definido en los Recursos de ListView:

<Style TargetType="{x:Type GridViewColumnHeader}">
					<Setter Property="HorizontalContentAlignment" Value="Left" />
</Style>

Estilo local o global

Al definir el estilo dentro del control en sí, solo se aplica a este ListView en particular. En muchos casos, es posible que desee que se aplique a todos los ListViews dentro de la misma ventana / página o quizás incluso globalmente en toda la aplicación. Puede hacerlo copiando el estilo en los recursos de Windows o en la Aplicación recursos. Aquí está el mismo ejemplo, donde hemos aplicado el estilo a toda la ventana en lugar de solo al ListView particular:

<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>

En caso de que desee otra alineación, por ejemplo alineación correcta, simplemente cambia el valor del estilo de esta manera:

<Setter Property="HorizontalContentAlignment" Value="Right" />
This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!