TOC

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

ListView:

How-to: ListView with left aligned column names

Đối với một ListView bình thường, tên cột được căn trái, nhưng vì một lý do nào đó, Microsoft quyết định căn giữa tên cột làm mặc định trong WPF ListView. Trong nhiều trường hợp, điều này làm cho chương trình của bạn có style khác so với các chương trình Windows khác. Dưới đây là ListView mặc định

Chúng ta hãy thử căn trái tên cột. Tuy nhiên, không có thuộc tính nào của GridViewColumn để thực hiện việc này, nhưng như vậy không có nghĩa là nó không thể thay đổi được.

Bằng việc sử dụng Style, TargetType là GridViewColumHeader (thành phần được dùng để hiển thị tiêu đề của một GridViewColumn), chúng ta có thể thay đổi thuộc tính HorizontalAlignment của nó. Trong trường hợp này mặc định là Center, nhưng chúng ta có thể đổi nó thành Left để đạt được kết quả mong muốn:

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

Dưới đây là phần thực hiện việc căn chỉnh cho chúng ta, là một Style được định nghĩa trong Resources của ListView:

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

Style cục bộ và toàn cục

Một Style được định nghĩa bên trong một ListView sẽ chỉ áp dụng cho ListView đó. Trong nhiều trường hợp bạn muốn áp dụng Style này cho toàn bộ ListView trong cùng một Window/Page hoặc có thể thậm chí là toàn bộ chương trình. Để làm được như vậy, bạn copy Style đó vào Windows Resources hoặc Application Resources. Dưới đây là một ví dụ mà chúng ta áp dụng Style cho toàn bộ ListView nằm trong Window thay vì một ListView cụ thể:

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

Trong trường hợp bạn muốn căn chỉnh theo kiểu khác, ví dụ như căn phải, chỉ cần thay đổi giá trị của style như dưới đây:

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